/*
 * This is a manifest file that'll be compiled into application.css.
 *
 * With Propshaft, assets are served efficiently without preprocessing steps. You can still include
 * application-wide styles in this file, but keep in mind that CSS precedence will follow the standard
 * cascading order, meaning styles declared later in the document or manifest will override earlier ones,
 * depending on specificity.
 *
 * Consider organizing styles into separate files for maintainability.
 */

/* Custom form styling */
input[type="text"], input[type="email"], input[type="password"], select, textarea {
  @apply border-gray-300 focus:ring-indigo-500 focus:border-indigo-500;
}

/* Ensure proper spacing for form elements */
.form-group {
  @apply mb-4;
}

/* Custom button hover effects */
.btn-primary {
  @apply transition-all duration-200 ease-in-out;
}

.btn-primary:hover {
  @apply transform scale-105;
}

/* Table hover effects */
.table-row-hover:hover {
  @apply bg-gray-50 transition-colors duration-150;
}

/* Badge styling */
.badge {
  @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;
}

/* Service badge colors */
.badge-custom {
  @apply bg-gray-100 text-gray-800;
}

.badge-anthropic {
  @apply bg-orange-100 text-orange-800;
}

.badge-gemini {
  @apply bg-blue-100 text-blue-800;
}

.badge-open_ai {
  @apply bg-green-100 text-green-800;
}

/* Prism.js Syntax Highlighting - Tomorrow Night Theme */
code[class*="language-"],
pre[class*="language-"] {
  color: #c5c8c6;
  background: none;
  text-shadow: 0 1px rgba(0, 0, 0, 0.3);
  font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
  font-size: 0.875rem;
  text-align: left;
  white-space: pre;
  word-spacing: normal;
  word-break: normal;
  word-wrap: normal;
  line-height: 1.5;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
  -webkit-hyphens: none;
  -moz-hyphens: none;
  -ms-hyphens: none;
  hyphens: none;
}

/* Code blocks */
pre[class*="language-"] {
  padding: 1em;
  margin: 0.5em 0;
  overflow: auto;
  border-radius: 0.5rem;
  background: #1d1f21;
}

:not(pre) > code[class*="language-"],
pre[class*="language-"] {
  background: #1d1f21;
}

/* Inline code */
:not(pre) > code[class*="language-"] {
  padding: 0.1em;
  border-radius: 0.3em;
  white-space: normal;
}

/* Tomorrow Night Token colors */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #969896;
}

.token.punctuation {
  color: #c5c8c6;
}

.namespace {
  opacity: 0.7;
}

.token.property,
.token.tag,
.token.constant,
.token.symbol,
.token.deleted {
  color: #cc6666;
}

.token.boolean,
.token.number {
  color: #de935f;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #b5bd68;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string,
.token.variable {
  color: #c5c8c6;
}

.token.atrule,
.token.attr-value,
.token.function,
.token.class-name {
  color: #f0c674;
}

.token.keyword {
  color: #b294bb;
}

.token.regex,
.token.important {
  color: #cc6666;
}

.token.important,
.token.bold {
  font-weight: bold;
}

.token.italic {
  font-style: italic;
}

.token.entity {
  cursor: help;
}

/* Language-specific adjustments for Tomorrow Night */
.language-swift .token.keyword {
  color: #b294bb;
}

.language-kotlin .token.keyword {
  color: #b294bb;
}

.language-javascript .token.keyword {
  color: #b294bb;
}
