/*
 * 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 - Nord Theme */
code[class*="language-"],
pre[class*="language-"] {
  color: #f8f8f2;
  background: none;
  font-family: "Fira Code", Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
  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.3em;
}

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

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

.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #636f88;
}

.token.punctuation {
  color: #81A1C1;
}

.namespace {
  opacity: 0.7;
}

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

.token.number {
  color: #B48EAD;
}

.token.boolean {
  color: #81A1C1;
}

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

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

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

.token.keyword {
  color: #81A1C1;
}

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

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

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

.token.entity {
  cursor: help;
}
