/* Platform — Custom styles */
:root {
    --quo-accent: #0170B9;
    --quo-header-h: 56px;
    --quo-sidebar-w: 264px;
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

/* ===== Layout: header + sidebar flotante ===== */
.quo-header {
    height: var(--quo-header-h);
}

.quo-sidebar {
    width: var(--quo-sidebar-w);
    transform: translateX(-100%);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
    will-change: transform;
}
.quo-sidebar.quo-open {
    transform: translateX(0);
}

.quo-overlay {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.quo-overlay.quo-open {
    opacity: 1;
    pointer-events: auto;
}

/* Efecto glass sutil en el header */
.quo-header-glass {
    backdrop-filter: blur(12px) saturate(140%);
    -webkit-backdrop-filter: blur(12px) saturate(140%);
    background: oklch(var(--b1) / 0.82);
}

/* Pulse sutil del botón menú al abrir */
@keyframes quo-menu-pulse {
    0% { transform: scale(1); }
    50% { transform: scale(0.92); }
    100% { transform: scale(1); }
}
.quo-menu-btn.quo-pulse {
    animation: quo-menu-pulse 0.3s ease;
}

/* Botón menú — estilo moderno: icono limpio, hover suave */
.quo-menu-btn {
    background: transparent !important;
    border: none !important;
    color: oklch(var(--bc) / 0.6) !important;
    border-radius: 0.6rem;
    transition: all 0.15s ease;
}
.quo-menu-btn:hover {
    background: oklch(var(--bc) / 0.08) !important;
    color: oklch(var(--a)) !important;
}

/* Smooth transitions */
.btn, .input, .badge, .card {
    transition: all 0.15s ease;
}

/* Custom scrollbar */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}
::-webkit-scrollbar-track {
    background: transparent;
}
::-webkit-scrollbar-thumb {
    background: oklch(var(--bc) / 0.2);
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: oklch(var(--bc) / 0.3);
}

/* Code inputs */
.code-digit {
    font-variant-numeric: tabular-nums;
}

/* Table row hover */
.budget-row:hover {
    background: oklch(var(--p) / 0.05);
}

/* HTMX indicators */
.htmx-indicator {
    display: none;
}
.htmx-request .htmx-indicator {
    display: inline;
}
.htmx-request.htmx-indicator {
    display: inline;
}

/* Badge colors by estado */
.badge-borrador { background: oklch(var(--n) / 0.15); color: oklch(var(--nc) / 1); }
.badge-revision { background: oklch(var(--a) / 0.15); color: oklch(var(--ac) / 1); }
.badge-ajustado { background: oklch(var(--wa) / 0.15); color: oklch(0.75 0.15 90); }
.badge-aprobado { background: oklch(var(--su) / 0.15); color: var(--suc); }
.badge-finalizado { background: oklch(var(--in) / 0.15); color: var(--inc); }
.badge-enviado { background: oklch(var(--p) / 0.15); color: oklch(var(--pc)); }
.badge-archivado { background: oklch(var(--bc) / 0.1); color: oklch(var(--bc) / 0.5); }

/* ===== Wiki: estilos de contenido Markdown ===== */
/* Diseñado para legibilidad profesional 2026 — inspirado en Mintlify, Stripe Docs, Linear Docs */

.wiki-article {
    font-size: 16px;
    line-height: 1.75;
    color: oklch(var(--bc) / 0.85);
    max-width: 780px;
}

.wiki-article > h1 {
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: -0.02em;
    margin: 0 0 0.5rem 0;
    color: oklch(var(--bc));
    line-height: 1.2;
}

.wiki-article > h1 + p {
    font-size: 1.15rem;
    color: oklch(var(--bc) / 0.55);
    margin-bottom: 2rem;
    line-height: 1.6;
    border-bottom: 1px solid var(--b3);
    padding-bottom: 1.5rem;
}

.wiki-article h2 {
    font-size: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 2.5rem 0 1rem 0;
    color: oklch(var(--bc));
    line-height: 1.3;
    scroll-margin-top: 80px;
}

.wiki-article h2::before {
    content: "";
    display: block;
    width: 32px;
    height: 3px;
    border-radius: 2px;
    background: oklch(var(--p) / 1);
    margin-bottom: 0.75rem;
}

.wiki-article h3 {
    font-size: 1.2rem;
    font-weight: 600;
    margin: 2rem 0 0.75rem 0;
    color: oklch(var(--bc));
    scroll-margin-top: 80px;
}

.wiki-article h4 {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 1.5rem 0 0.5rem 0;
    color: oklch(var(--bc) / 0.9);
}

.wiki-article p {
    margin: 0 0 1.25rem 0;
}

.wiki-article a {
    color: oklch(var(--p) / 1);
    text-decoration: none;
    font-weight: 500;
    border-bottom: 1px solid oklch(var(--p) / 0.3);
    transition: border-color 0.15s ease;
}

.wiki-article a:hover {
    border-bottom-color: oklch(var(--p) / 1);
}

.wiki-article strong {
    font-weight: 700;
    color: oklch(var(--bc));
}

.wiki-article em {
    font-style: italic;
    color: oklch(var(--bc) / 0.8);
}

.wiki-article ul, .wiki-article ol {
    margin: 0 0 1.25rem 0;
    padding-left: 1.5rem;
}

.wiki-article ul {
    list-style: none;
    padding-left: 0;
}

.wiki-article ul > li {
    position: relative;
    padding-left: 1.5rem;
    margin-bottom: 0.5rem;
}

.wiki-article ul > li::before {
    content: "";
    position: absolute;
    left: 0.25rem;
    top: 0.65rem;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: oklch(var(--p) / 1);
}

.wiki-article ol {
    list-style: decimal;
    counter-reset: item;
}

.wiki-article ol > li {
    margin-bottom: 0.5rem;
    padding-left: 0.25rem;
}

.wiki-article ol > li::marker {
    color: oklch(var(--p) / 1);
    font-weight: 600;
}

.wiki-article li > ul, .wiki-article li > ol {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
}

.wiki-article code {
    font-family: 'JetBrains Mono', 'Fira Code', monospace;
    font-size: 0.85em;
    background: oklch(var(--b2));
    color: oklch(var(--p) / 1);
    padding: 0.15rem 0.4rem;
    border-radius: 4px;
    border: 1px solid oklch(var(--b3));
    font-weight: 500;
}

.wiki-article pre {
    background: oklch(var(--b2));
    border: 1px solid oklch(var(--b3));
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    overflow-x: auto;
    margin: 0 0 1.5rem 0;
    font-size: 0.875rem;
    line-height: 1.6;
}

.wiki-article pre code {
    background: none;
    border: none;
    padding: 0;
    color: oklch(var(--bc) / 0.85);
    font-weight: 400;
    font-size: inherit;
}

.wiki-article blockquote {
    border-left: 4px solid oklch(var(--p) / 1);
    background: oklch(var(--p) / 0.05);
    border-radius: 0 12px 12px 0;
    padding: 1rem 1.5rem;
    margin: 0 0 1.5rem 0;
    color: oklch(var(--bc) / 0.7);
}

.wiki-article blockquote p {
    margin: 0;
}

.wiki-article blockquote p + p {
    margin-top: 0.75rem;
}

.wiki-article table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    margin: 0 0 1.5rem 0;
    font-size: 0.9rem;
    border: 1px solid oklch(var(--b3));
    border-radius: 12px;
    overflow: hidden;
}

.wiki-article thead {
    background: oklch(var(--b2));
}

.wiki-article th {
    padding: 0.75rem 1rem;
    text-align: left;
    font-weight: 600;
    color: oklch(var(--bc));
    background: oklch(var(--b2));
    border-bottom: 2px solid oklch(var(--b3));
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.wiki-article td {
    padding: 0.75rem 1rem;
    border-bottom: 1px solid oklch(var(--b3) / 0.5);
    color: oklch(var(--bc) / 0.8);
}

.wiki-article tr:last-child td {
    border-bottom: none;
}

.wiki-article tbody tr:hover {
    background: oklch(var(--b2) / 0.5);
}

.wiki-article img {
    width: 100%;
    border-radius: 16px;
    border: 1px solid oklch(var(--b3));
    margin: 1.5rem 0;
    box-shadow: 0 4px 24px oklch(var(--bc) / 0.06);
}

.wiki-article hr {
    border: none;
    height: 1px;
    background: linear-gradient(to right, transparent, var(--b3), transparent);
    margin: 2.5rem 0;
}

/* ===== Wiki: sidebar ===== */
.wiki-sidebar {
    scrollbar-width: thin;
    scrollbar-color: var(--b3) transparent;
}

.wiki-sidebar::-webkit-scrollbar {
    width: 4px;
}
.wiki-sidebar::-webkit-scrollbar-thumb {
    background: oklch(var(--b3));
    border-radius: 2px;
}

/* ===== Wiki: tarjetas landing ===== */
.wiki-card {
    transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.wiki-card:hover {
    transform: translateY(-2px);
}

/* ===== Wiki: navegación anterior/siguiente ===== */
.wiki-nav-btn {
    transition: transform 0.15s ease, border-color 0.15s ease;
}
.wiki-nav-btn:hover {
    transform: translateY(-1px);
}

/* ===== Wiki: chat IA — renderizado de mensajes ===== */
.wiki-chat-msg a {
    color: oklch(var(--p) / 1);
    text-decoration: underline;
}
.wiki-chat-msg code {
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.85em;
    background: oklch(var(--b3) / 0.5);
    padding: 0.1rem 0.3rem;
    border-radius: 3px;
}
.wiki-chat-msg ul {
    list-style: disc;
    padding-left: 1.25rem;
    margin: 0.25rem 0;
}
.wiki-chat-msg li {
    margin: 0.15rem 0;
}


/* ===== Acento de marca — detalles sutiles ===== */

/* Item activo del menú: barra de acento a la izquierda */
aside nav a[class*="text-primary"] {
    box-shadow: inset 3px 0 0 oklch(var(--a));
}

/* Calendario (FullCalendar): solo números de día en acento */
.fc-daygrid-day-number {
    color: oklch(var(--a));
}
.fc-day-today {
    background: oklch(var(--a) / 0.06) !important;
}
.fc-day-today .fc-daygrid-day-number {
    background: oklch(var(--a));
    color: oklch(var(--ac));
    border-radius: 9999px;
    padding: 0.1rem 0.45rem;
    font-weight: 600;
}

/* Tarjeta recién creada: resaltado interior (outline no se corta por overflow) */
.task-new-highlight {
    outline: 2px solid oklch(var(--p));
    outline-offset: -2px;
    border-radius: var(--rounded-box, 0.5rem);
}
