/* ADP Corporate Branding Styles */
:root {
  --adp-red: #D0271D;
  --adp-dark-blue: #010035;
  --adp-light-grey: #F2F3F3;
  --adp-white: #FFFFFF;
  --adp-dark-grey: #54565A;
  --adp-light-pink: #FFE5E7;
  --separator-color: #707070;
}

/* Reset and Base Styles */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

/* Restore nested list indentation in Swagger UI */
.swagger-ui ul, .swagger-ui ol {
  padding-left: 1.5em;
}

.swagger-ui ul ul, .swagger-ui ol ol, .swagger-ui ul ol, .swagger-ui ol ul {
  padding-left: 1.5em;
}

body {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  line-height: 1.6;
  background: var(--adp-white);
}

/* ADP Logo Styling */
.adp-logo-img {
  height: 32px;
  width: auto;
}

.icon-adp::before {
  content: "ADP";
  color: var(--adp-red);
  font-weight: bold;
  font-size: inherit;
}

/* Landing Page Styles */
.landing-body {
  background: var(--adp-white);
  min-height: 100vh;
  display: flex;
  flex-direction: column;
}

.landing-header {
  background: var(--adp-dark-blue);
  padding: 1rem 2rem;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.landing-logo {
  display: flex;
  align-items: center;
  gap: 1rem;
}

.separator {
  color: var(--adp-white);
  font-size: 1.2rem;
  margin: 0 0.5rem;
}

.subtitle {
  color: var(--adp-white);
  font-size: 0.9rem;
  font-weight: 500;
}

.main-container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: var(--adp-white);
}

.auth-container {
  background: var(--adp-white);
  border-radius: 12px;
  padding: 3rem;
  box-shadow: 0 10px 30px rgba(0,0,0,0.2);
  max-width: 500px;
  width: 100%;
  border: 1px solid var(--adp-light-grey);
}

.auth-container h2 {
  color: var(--adp-dark-blue);
  text-align: center;
  margin-bottom: 2rem;
  font-size: 1.8rem;
}

.form-group {
  margin-bottom: 1.5rem;
}

.form-group label {
  display: block;
  color: var(--adp-dark-grey);
  margin-bottom: 0.5rem;
  font-weight: 500;
}

.form-group input {
  width: 100%;
  padding: 0.75rem;
  border: 2px solid var(--adp-light-grey);
  border-radius: 6px;
  font-size: 1rem;
  transition: border-color 0.3s ease;
  background: var(--adp-white);
}

.form-group input:focus {
  outline: none;
  border-color: var(--adp-red);
}

.login-btn {
  width: 100%;
  background: var(--adp-dark-blue);
  color: var(--adp-white);
  border: none;
  padding: 1rem;
  border-radius: 6px;
  font-size: 1.1rem;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s ease;
  margin-bottom: 2rem;
}

.login-btn:hover {
  background: #000028;
}

.demo-credentials {
  background: var(--adp-light-grey);
  padding: 1rem;
  border-radius: 6px;
  font-size: 0.9rem;
  color: var(--adp-dark-grey);
}

.demo-credentials p {
  margin: 0.25rem 0;
}

.api-selection {
  display: none;
}

.api-selection.show {
  display: block;
}

.api-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  margin-top: 1rem;
}

.api-card {
  background: var(--adp-white);
  border: 2px solid var(--adp-light-grey);
  border-radius: 8px;
  padding: 1.5rem;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  text-decoration: none;
  color: var(--adp-dark-blue);
}

.api-card:hover {
  border-color: var(--adp-red);
  background: var(--adp-light-pink);
  transform: translateY(-2px);
}

.api-card h3 {
  margin-bottom: 0.5rem;
  color: var(--adp-red);
}

.api-card p {
  font-size: 0.9rem;
  color: var(--adp-dark-grey);
}

.footer {
  background: var(--adp-dark-blue);
  color: var(--adp-white);
  text-align: center;
  padding: 1rem;
  font-size: 0.9rem;
}

.error-message {
  background: var(--adp-light-pink);
  color: var(--adp-red);
  padding: 0.75rem;
  border-radius: 6px;
  margin-bottom: 1rem;
  display: none;
}

/* API Page Header Styles */
.adp-header {
  background: var(--adp-dark-blue);
  padding: 15px 2rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 1000;
  color: var(--adp-white);
}

.adp-logo {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 16px;
}

.adp-logo .separator {
  border-right: 1px solid var(--separator-color);
  padding-right: 0.75rem;
  color: var(--adp-white);
}

.product-title {
  color: var(--adp-white);
  font-weight: 600;
  margin-left: 0.75rem;
}

.user-info {
  display: flex;
  align-items: center;
  gap: 1rem;
  color: var(--adp-white);
  font-size: 0.9rem;
}

.logout-btn {
  background: var(--adp-red);
  color: var(--adp-white);
  border: none;
  padding: 0.5rem 1rem;
  border-radius: 4px;
  cursor: pointer;
  font-size: 0.9rem;
  transition: background-color 0.3s ease;
}

.logout-btn:hover {
  background: #B01F17;
}

/* Swagger UI Page Background */
body {
  background: var(--adp-white);
}

/* Swagger UI Customizations */
.swagger-ui .topbar {
  display: none;
}

.swagger-ui .info {
  margin: 2rem 0;
}

.swagger-ui .info .title {
  color: var(--adp-dark-blue);
  font-size: 2.5rem;
  margin-bottom: 1rem;
}

.swagger-ui .info .description {
  color: var(--adp-dark-grey);
  font-size: 1.1rem;
  line-height: 1.6;
}

.swagger-ui .scheme-container {
  background: var(--adp-white);
  border: 2px solid var(--adp-light-grey);
  border-radius: 8px;
  padding: 1rem;
  margin: 1rem 0;
}

/* Override default green colors with ADP colors */
.swagger-ui .opblock.opblock-get .opblock-summary-method {
  background: var(--adp-dark-blue) !important;
  color: var(--adp-white) !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary-method {
  background: var(--adp-red) !important;
}

.swagger-ui .opblock.opblock-put .opblock-summary-method {
  background: #FF8C00 !important;
}

.swagger-ui .opblock.opblock-delete .opblock-summary-method {
  background: #DC143C !important;
}

.swagger-ui .btn.authorize {
  background: var(--adp-red) !important;
  border-color: var(--adp-red) !important;
}

.swagger-ui .btn.authorize:hover {
  background: #B01F17 !important;
  border-color: #B01F17 !important;
}

/* Remove green from OAS3 badge and other elements */
.swagger-ui .info .main .link {
  color: var(--adp-red) !important;
}

.swagger-ui .download-url-wrapper .select-label {
  color: var(--adp-dark-blue) !important;
}

.swagger-ui .download-url-wrapper .download-url-button {
  background: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

/* Override any remaining green colors */
.swagger-ui .opblock .opblock-summary-description,
.swagger-ui .opblock .opblock-summary-path,
.swagger-ui .opblock .opblock-summary-path__deprecated {
  color: var(--adp-dark-grey) !important;
}

.swagger-ui .opblock.is-open .opblock-summary {
  border-bottom: 1px solid var(--adp-light-grey) !important;
}



/* Override green success colors */
.swagger-ui .response.highlighted {
  background: var(--adp-light-grey) !important;
}

.swagger-ui .response .response-col_status {
  color: var(--adp-dark-blue) !important;
}

/* Fix green in response codes */
.swagger-ui .responses-inner h4,
.swagger-ui .responses-inner h5 {
  color: var(--adp-dark-blue) !important;
}

/* Override any green buttons */
.swagger-ui .btn.execute {
  background: var(--adp-red) !important;
  border-color: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

.swagger-ui .btn.execute:hover {
  background: #B01F17 !important;
  border-color: #B01F17 !important;
}

/* Fix green in parameter sections */
.swagger-ui .parameter__name {
  color: var(--adp-dark-blue) !important;
}

.swagger-ui .parameter__type {
  color: var(--adp-dark-grey) !important;
}

/* Override green in models */
.swagger-ui .model-box {
  background: var(--adp-light-grey) !important;
}

.swagger-ui .model .property {
  color: var(--adp-dark-blue) !important;
}

/* Fix any remaining green elements */
.swagger-ui .opblock-tag {
  color: var(--adp-dark-blue) !important;
}

.swagger-ui .opblock-tag:hover {
  background: var(--adp-light-grey) !important;
}

/* Comprehensive green color removal */
.swagger-ui .opblock.opblock-post {
  background: rgba(208, 39, 29, 0.1) !important;
  border-color: var(--adp-red) !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary {
  border-color: var(--adp-red) !important;
}

/* Remove green from version badges and info sections */
.swagger-ui .info .main .link,
.swagger-ui .info .title small,
.swagger-ui .info .title small.version-stamp {
  color: var(--adp-red) !important;
  background: transparent !important;
}

/* Override any green backgrounds in operation blocks */
.swagger-ui .opblock.opblock-post .opblock-summary-method,
.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after {
  background: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

/* Remove green from response status codes */
.swagger-ui .response-col_status .response-undocumented {
  color: var(--adp-dark-blue) !important;
}

/* Override green in try-it-out sections */
.swagger-ui .try-out__btn {
  background: var(--adp-red) !important;
  border-color: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

.swagger-ui .try-out__btn:hover {
  background: #B01F17 !important;
  border-color: #B01F17 !important;
}

/* Remove green from any remaining elements */
.swagger-ui .opblock .opblock-section-header h4 {
  color: var(--adp-dark-blue) !important;
}

.swagger-ui .parameter__extension,
.swagger-ui .parameter__in {
  color: var(--adp-dark-grey) !important;
}





/* Specific targeting for stubborn green elements */
.swagger-ui .info .main .link:visited,
.swagger-ui .info .main .link:active {
  color: var(--adp-red) !important;
}



/* Remove green from operation summaries */
.swagger-ui .opblock-summary-operation-id,
.swagger-ui .opblock-summary-path {
  color: var(--adp-dark-grey) !important;
}

/* Override green in any badges or labels */
.swagger-ui .info .title small pre,
.swagger-ui .info .title small code {
  background: var(--adp-light-grey) !important;
  color: var(--adp-dark-blue) !important;
  border: 1px solid var(--adp-light-grey) !important;
}

/* Target specific Swagger UI green elements without affecting text */
.swagger-ui .opblock.opblock-post .opblock-summary-method {
  background: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

/* Fix OAS3 version badge - keep text but change background */
.swagger-ui .info .title small {
  background: var(--adp-light-grey) !important;
  color: var(--adp-dark-blue) !important;
  border: 1px solid var(--adp-light-grey) !important;
  padding: 2px 6px !important;
  border-radius: 3px !important;
}

/* Override POST method operation block background */
.swagger-ui .opblock.opblock-post {
  background: rgba(208, 39, 29, 0.05) !important;
  border-color: var(--adp-red) !important;
}

.swagger-ui .opblock.opblock-post .opblock-summary {
  border-color: var(--adp-red) !important;
}

/* Remove any green from execute buttons */
.swagger-ui .btn.execute {
  background: var(--adp-red) !important;
  border-color: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

/* Override authorize button */
.swagger-ui .btn.authorize {
  background: var(--adp-red) !important;
  border-color: var(--adp-red) !important;
  color: var(--adp-white) !important;
}

/* Hide download URL wrapper and JSON file links */
.swagger-ui .download-url-wrapper,
.swagger-ui .info .main .link {
  display: none !important;
}

/* Hide any remaining download links */
.swagger-ui .download-url-button,
.swagger-ui .select-label {
  display: none !important;
}

/* Hide elements with url class */
.swagger-ui .url {
  display: none !important;
}

/* Authentication warning */
.auth-warning {
  background: var(--adp-light-pink);
  border: 1px solid var(--adp-red);
  color: var(--adp-red);
  padding: 1rem;
  border-radius: 6px;
  margin: 1rem 0;
  text-align: center;
  display: none;
}

/* Container for Swagger UI */
.swagger-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem;
  background: var(--adp-white);
}

/* Responsive Design */
@media (max-width: 768px) {
  .adp-header {
    padding: 1rem;
    flex-direction: column;
    gap: 1rem;
  }
  
  .landing-header {
    padding: 1rem;
  }
  
  .landing-logo {
    flex-direction: column;
    gap: 0.5rem;
    text-align: center;
  }
  
  .auth-container {
    padding: 2rem;
    margin: 1rem;
  }
  
  .api-grid {
    grid-template-columns: 1fr;
  }
  
  .swagger-container {
    padding: 0 1rem;
  }
}

/* Utility Classes */
.flex {
  display: flex;
}

.items-center {
  align-items: center;
}

.text-center {
  text-align: center;
}

.hidden {
  display: none !important;
}