@tailwind base;
@tailwind components;
@tailwind utilities;

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 222.2 84% 4.9%;
    --card: 0 0% 100%;
    --card-foreground: 222.2 84% 4.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 222.2 84% 4.9%;
    --primary: 221.2 83.2% 53.3%;
    --primary-foreground: 210 40% 98%;
    --secondary: 210 40% 96.1%;
    --secondary-foreground: 222.2 47.4% 11.2%;
    --muted: 210 40% 96.1%;
    --muted-foreground: 215.4 16.3% 46.9%;
    --accent: 210 40% 96.1%;
    --accent-foreground: 222.2 47.4% 11.2%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 210 40% 98%;
    --border: 214.3 31.8% 91.4%;
    --input: 214.3 31.8% 91.4%;
    --ring: 221.2 83.2% 53.3%;
    --radius: 0.5rem;
  }

  .dark {
    --background: 222.2 84% 4.9%;
    --foreground: 210 40% 98%;
    --card: 222.2 84% 4.9%;
    --card-foreground: 210 40% 98%;
    --popover: 222.2 84% 4.9%;
    --popover-foreground: 210 40% 98%;
    --primary: 217.2 91.2% 59.8%;
    --primary-foreground: 222.2 47.4% 11.2%;
    --secondary: 217.2 32.6% 17.5%;
    --secondary-foreground: 210 40% 98%;
    --muted: 217.2 32.6% 17.5%;
    --muted-foreground: 215 20.2% 65.1%;
    --accent: 217.2 32.6% 17.5%;
    --accent-foreground: 210 40% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 210 40% 98%;
    --border: 217.2 32.6% 17.5%;
    --input: 217.2 32.6% 17.5%;
    --ring: 224.3 76.3% 48%;
  }
}

@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
    font-feature-settings: "rlig" 1, "calt" 1;
  }
}

/* Scrollbar personalizzata */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  @apply bg-muted;
}
::-webkit-scrollbar-thumb {
  @apply bg-muted-foreground/30 rounded-full;
}
::-webkit-scrollbar-thumb:hover {
  @apply bg-muted-foreground/50;
}

/* Animazione loader */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.animate-spin {
  animation: spin 1s linear infinite;
}

/* ─── Rich Text Editor (TipTap / ProseMirror) ─────────────────────────────── */

.rte-content {
  outline: none;
  min-height: inherit;
  line-height: 1.6;
  font-size: 0.875rem;
}

/* Placeholder */
.rte-content p.is-editor-empty:first-child::before {
  content: attr(data-placeholder);
  color: hsl(var(--muted-foreground));
  float: left;
  height: 0;
  pointer-events: none;
}

/* Tipografia */
.rte-content h1 { font-size: 1.6rem; font-weight: 700; margin: 0.6rem 0 0.3rem; line-height: 1.3; }
.rte-content h2 { font-size: 1.3rem; font-weight: 600; margin: 0.5rem 0 0.25rem; line-height: 1.3; }
.rte-content h3 { font-size: 1.1rem; font-weight: 600; margin: 0.4rem 0 0.2rem; line-height: 1.3; }
.rte-content p  { margin: 0.2rem 0; }
.rte-content p + p { margin-top: 0.4rem; }

/* Elenchi */
.rte-content ul { list-style-type: disc;    padding-left: 1.5rem; margin: 0.3rem 0; }
.rte-content ol { list-style-type: decimal; padding-left: 1.5rem; margin: 0.3rem 0; }
.rte-content li { margin: 0.15rem 0; }

/* Citazione */
.rte-content blockquote {
  border-left: 3px solid hsl(var(--border));
  padding-left: 0.85rem;
  color: hsl(var(--muted-foreground));
  margin: 0.4rem 0;
  font-style: italic;
}

/* Link */
.rte-content a.rte-link,
.rte-content a {
  color: hsl(var(--primary));
  text-decoration: underline;
  cursor: pointer;
}
.rte-content a:hover { opacity: 0.8; }

/* Codice */
.rte-content code {
  background: hsl(var(--muted));
  padding: 0.1rem 0.3rem;
  border-radius: 0.25rem;
  font-family: ui-monospace, monospace;
  font-size: 0.8em;
}
.rte-content pre {
  background: hsl(222 47% 11%);
  color: hsl(210 40% 96%);
  padding: 0.75rem 1rem;
  border-radius: 0.375rem;
  overflow-x: auto;
  margin: 0.4rem 0;
}
.rte-content pre code { background: none; color: inherit; padding: 0; }

/* Separatore orizzontale */
.rte-content hr {
  border: none;
  border-top: 1px solid hsl(var(--border));
  margin: 0.6rem 0;
}

/* Selezione testo */
.rte-content .ProseMirror-selectednode { outline: 2px solid hsl(var(--primary)); }

/* Badge PEC stati */
.pec-badge-draft      { @apply bg-gray-100 text-gray-700 border-gray-200; }
.pec-badge-queued     { @apply bg-yellow-100 text-yellow-700 border-yellow-200; }
.pec-badge-sent       { @apply bg-blue-100 text-blue-700 border-blue-200; }
.pec-badge-accepted   { @apply bg-cyan-100 text-cyan-700 border-cyan-200; }
.pec-badge-delivered  { @apply bg-green-100 text-green-700 border-green-200; }
.pec-badge-received   { @apply bg-green-100 text-green-700 border-green-200; }
.pec-badge-anomaly    { @apply bg-orange-100 text-orange-700 border-orange-200; }
.pec-badge-failed     { @apply bg-red-100 text-red-700 border-red-200; }
.pec-badge-retrying   { @apply bg-purple-100 text-purple-700 border-purple-200; }
