/* ============================================================
   BlogGeneral - Tema "Cyberpunk Minimal"
   Capa de identidad: redefine las variables del tema y añade detalles.
   Debe cargarse SIEMPRE despues de cyberkit.css y styles.css.
   ============================================================ */

:root {
  color-scheme: light;
  --font-sans: "Inter", "Segoe UI Variable Text", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-mono: "JetBrains Mono", "Cascadia Code", "Cascadia Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  --radius-xs: 2px;
  --radius-sm: 3px;
  --radius-md: 4px;
  --radius-lg: 6px;
  --radius-xl: 8px;
  --radius-2xl: 10px;
  --radius-3xl: 12px;
  --radius-4xl: 14px;

  --color-slate-50: #f1f6fc;
  --color-slate-100: #e2ecf7;
  --color-slate-200: #c6d7ea;
  --color-slate-300: #9fb6d2;
  --color-slate-400: #728fb4;
  --color-slate-500: #4e6a8f;
  --color-slate-600: #37506f;
  --color-slate-700: #263a55;
  --color-slate-800: #16263c;
  --color-slate-900: #0c1727;
  --color-slate-950: #050a13;

  --color-brand-50: #e2fdff;
  --color-brand-100: #b8f8ff;
  --color-brand-200: #7df0fb;
  --color-brand-300: #3fe3f2;
  --color-brand-400: #14cee2;
  --color-brand-500: #00aec4;
  --color-brand-600: #008ba3;
  --color-brand-700: #066f84;
  --color-brand-800: #0c596b;
  --color-brand-900: #104a5a;
  --color-brand-950: #03303d;

  --color-emerald-50: #e6fdf5;
  --color-emerald-100: #c4fae7;
  --color-emerald-200: #8ff3d1;
  --color-emerald-300: #52e5b6;
  --color-emerald-400: #1fcf99;
  --color-emerald-500: #06b481;
  --color-emerald-600: #009068;
  --color-emerald-700: #057355;
  --color-emerald-800: #0a5c46;
  --color-emerald-900: #0b4b3a;
  --color-emerald-950: #032c22;

  --color-amber-50: #fff8e6;
  --color-amber-100: #ffefc2;
  --color-amber-200: #ffdf85;
  --color-amber-300: #ffc93d;
  --color-amber-400: #f5b400;
  --color-amber-500: #d69a00;
  --color-amber-600: #b07c00;
  --color-amber-700: #8c6100;
  --color-amber-800: #714e00;
  --color-amber-900: #5d4000;
  --color-amber-950: #382600;

  --color-rose-50: #fff0f4;
  --color-rose-100: #ffe0e9;
  --color-rose-200: #ffc2d3;
  --color-rose-300: #ff94b4;
  --color-rose-400: #ff5c8d;
  --color-rose-500: #f52d6c;
  --color-rose-600: #d10f53;
  --color-rose-700: #ad0845;
  --color-rose-800: #8f0a3d;
  --color-rose-900: #780d38;
  --color-rose-950: #43001b;

  --cy-grid: rgba(20, 206, 226, 0.05);
  --cy-line: rgba(20, 206, 226, 0.16);
  --cy-glow-soft: 0 0 0 1px rgba(20, 206, 226, 0.06), 0 22px 50px -38px rgba(20, 206, 226, 0.55);
  --cy-glow-hard: 0 0 0 1px rgba(20, 206, 226, 0.2), 0 26px 60px -30px rgba(20, 206, 226, 0.7);
}

.dark {
  color-scheme: dark;
}

/* --- Fondo: retícula tecnica + halo --- */
body {
  background-image:
    radial-gradient(1100px 520px at 50% -12%, rgba(20, 206, 226, 0.1), transparent 62%),
    linear-gradient(var(--cy-grid) 1px, transparent 1px),
    linear-gradient(90deg, var(--cy-grid) 1px, transparent 1px);
  background-size: 100% 100%, 46px 46px, 46px 46px;
  background-attachment: fixed;
}

::selection {
  background: var(--color-brand-400);
  color: #02121a;
}

::-webkit-scrollbar-thumb {
  background: #b9cbe0;
  background-clip: content-box;
}
.dark ::-webkit-scrollbar-thumb {
  background: #17324a;
  background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover {
  background: var(--color-brand-500);
  background-clip: content-box;
}

:focus-visible {
  outline: 1px solid var(--color-brand-400);
  outline-offset: 2px;
}

/* --- Tipografia de interfaz --- */
h1,
h2,
h3,
h4 {
  letter-spacing: -0.02em;
}
.dark h1,
.dark h2,
.dark h3 {
  text-shadow: 0 0 26px rgba(20, 206, 226, 0.18);
}

.nav-link {
  font-family: var(--font-mono);
  font-size: 0.7rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.nav-link.is-active {
  background: transparent;
  color: var(--color-brand-600);
  box-shadow: inset 0 -2px 0 var(--color-brand-400);
}
.dark .nav-link.is-active {
  background: transparent;
  color: var(--color-brand-300);
  box-shadow: inset 0 -2px 0 var(--color-brand-400);
}

button,
.tab-btn {
  font-family: var(--font-mono);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

/* --- Paneles y tarjetas: borde fino + resplandor --- */
[class*="rounded-2xl"][class*="border"],
[class*="rounded-3xl"][class*="border"] {
  box-shadow: 0 1px 0 rgba(12, 23, 39, 0.03), 0 14px 34px -28px rgba(12, 23, 39, 0.4);
}
.dark [class*="rounded-2xl"][class*="border"],
.dark [class*="rounded-3xl"][class*="border"] {
  box-shadow: var(--cy-glow-soft);
}

article {
  transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease;
}
.dark article:hover {
  box-shadow: var(--cy-glow-hard);
}

/* --- Cabecera y pie --- */
header.sticky {
  border-bottom-color: rgba(20, 206, 226, 0.22);
  box-shadow: 0 12px 40px -34px rgba(20, 206, 226, 0.8);
}
.dark header.sticky {
  border-bottom-color: var(--cy-line);
}
footer {
  border-top-color: rgba(20, 206, 226, 0.16);
}

/* --- Controles --- */
input,
select,
textarea {
  font-family: var(--font-mono);
}
input::placeholder,
textarea::placeholder {
  letter-spacing: 0.02em;
}

/* --- Prosa del articulo --- */
.prose a {
  color: var(--color-brand-600);
}
.dark .prose a {
  color: var(--color-brand-300);
}
.prose code {
  background: #e6f7fb;
  color: #066f84;
}
.dark .prose code {
  background: #08202c;
  color: #5ff0ff;
}
.prose pre {
  background: #060d18;
  border-color: #14273e;
  box-shadow: var(--cy-glow-soft);
}
.dark .prose pre {
  background: #040a12;
}
.prose blockquote {
  border-left-color: var(--color-brand-400);
  background: #f1f8fb;
}
.dark .prose blockquote {
  background: #07131f;
}
.prose h2 {
  border-bottom-color: #cfe2f0;
}
.dark .prose h2 {
  border-bottom-color: #14273e;
}

/* --- Detalles --- */
.dark .bg-gradient-to-br {
  filter: saturate(1.08);
}
.dark .animate-fade-up,
.dark .animate-fade-in {
  animation-timing-function: cubic-bezier(0.22, 0.61, 0.36, 1);
}

/* --- Bordes neon RGB giratorios en paneles --- */
@property --neon-angle {
  syntax: "<angle>";
  initial-value: 0deg;
  inherits: false;
}

@keyframes neon-rotate {
  to {
    --neon-angle: 360deg;
  }
}

.dark
  :is([class*="rounded-2xl"][class*="border"], [class*="rounded-3xl"][class*="border"]):not([class*="absolute"]):not([class*="fixed"]):not([class*="sticky"]) {
  position: relative;
}

.dark :is([class*="rounded-2xl"][class*="border"], [class*="rounded-3xl"][class*="border"])::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: conic-gradient(
    from var(--neon-angle, 0deg),
    #14cee2,
    #7c5cff,
    #ff2fd0,
    #ffd23d,
    #22e39a,
    #14cee2
  );
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask-composite: exclude;
  animation: neon-rotate 9s linear infinite;
  pointer-events: none;
  opacity: 0.9;
}

@media (prefers-reduced-motion: reduce) {
  .dark :is([class*="rounded-2xl"][class*="border"], [class*="rounded-3xl"][class*="border"])::after {
    animation: none;
  }
}

/* --- Editor Markdown (EasyMDE) --- */
.EasyMDEContainer .CodeMirror {
  border-color: #c6d7ea;
  border-radius: var(--radius-xl);
  background: #ffffff;
  color: #0c1727;
}
.EasyMDEContainer .editor-toolbar {
  border-color: #c6d7ea;
  border-radius: var(--radius-xl) var(--radius-xl) 0 0;
  background: #f1f6fc;
}
.EasyMDEContainer .editor-toolbar button {
  color: #37506f;
}
.EasyMDEContainer .editor-toolbar button:hover,
.EasyMDEContainer .editor-toolbar button.active {
  background: #e2ecf7;
  border-color: transparent;
}
.EasyMDEContainer .editor-statusbar {
  color: #4e6a8f;
}
.EasyMDEContainer .editor-preview,
.EasyMDEContainer .editor-preview-side {
  background: #ffffff;
}

.dark .EasyMDEContainer .CodeMirror {
  background: #0b1420;
  color: #e2ecf7;
  border-color: #16263c;
}
.dark .EasyMDEContainer .CodeMirror-cursor {
  border-color: var(--color-brand-300);
}
.dark .EasyMDEContainer .CodeMirror-selected {
  background: rgba(20, 206, 226, 0.22) !important;
}
.dark .EasyMDEContainer .editor-toolbar {
  background: #0b1420;
  border-color: #16263c;
}
.dark .EasyMDEContainer .editor-toolbar button {
  color: #9fb6d2;
}
.dark .EasyMDEContainer .editor-toolbar button:hover,
.dark .EasyMDEContainer .editor-toolbar button.active {
  background: #16263c;
  border-color: transparent;
}
.dark .EasyMDEContainer .editor-toolbar i.separator {
  border-color: #16263c;
}
.dark .EasyMDEContainer .editor-statusbar {
  color: #728fb4;
}
.dark .EasyMDEContainer .editor-preview,
.dark .EasyMDEContainer .editor-preview-side {
  background: #050a13;
  color: #cbd5e1;
  border-color: #16263c;
}
.dark .EasyMDEContainer .editor-preview pre,
.dark .EasyMDEContainer .editor-preview-side pre {
  background: #040a12;
  color: #e2e8f0;
}
.dark .EasyMDEContainer .editor-preview code {
  background: #08202c;
  color: #5ff0ff;
}

/* --- Recorte (Cropper.js) --- */
.cropper-view-box,
.cropper-face {
  outline-color: var(--color-brand-400);
}
.cropper-line,
.cropper-point {
  background-color: var(--color-brand-400);
}
.cropper-modal {
  background-color: #02060c;
  opacity: 0.72;
}

