/**
 * Genealogic Global Styles
 * Variables, tipografia, paleta de colores y componentes base.
 */

/* ==========================================
   CSS Custom Properties
   ========================================== */
:root {
    /* Primary palette */
    --genealogic-primary: #D74709;
    --genealogic-primary-hover: #c03d07;
    --genealogic-primary-light: #f8e8e0;
    --genealogic-primary-alpha: #D747099E;

    /* Neutrals */
    --genealogic-black: #000000;
    --genealogic-dark: #1a1a1a;
    --genealogic-gray-900: #222222;
    --genealogic-gray-700: #555555;
    --genealogic-gray-500: #888888;
    --genealogic-gray-300: #cccccc;
    --genealogic-gray-100: #f0f0f0;
    --genealogic-white: #ffffff;

    /* Semantic colors */
    --genealogic-success: #27ae60;
    --genealogic-warning: #f1c40f;
    --genealogic-danger: #e74c3c;
    --genealogic-info: #3498db;

    /* Defect severity (breed standards) */
    --genealogic-defect-minor: #f1c40f;
    --genealogic-defect-severe: #e67e22;
    --genealogic-defect-eliminatory: #e74c3c;

    /* Typography */
    --genealogic-font: 'Plus Jakarta Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --genealogic-font-size-xs: 11px;
    --genealogic-font-size-sm: 13px;
    --genealogic-font-size-base: 15px;
    --genealogic-font-size-md: 17px;
    --genealogic-font-size-lg: 20px;
    --genealogic-font-size-xl: 24px;
    --genealogic-font-size-2xl: 32px;

    /* Spacing */
    --genealogic-gap-xs: 4px;
    --genealogic-gap-sm: 8px;
    --genealogic-gap-md: 16px;
    --genealogic-gap-lg: 24px;
    --genealogic-gap-xl: 32px;
    --genealogic-gap-2xl: 48px;

    /* Borders & Radius */
    --genealogic-radius-sm: 6px;
    --genealogic-radius-md: 10px;
    --genealogic-radius-lg: 16px;
    --genealogic-radius-pill: 100px;
    --genealogic-border: 1px solid #e0e0e0;

    /* Shadows */
    --genealogic-shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.08);
    --genealogic-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
    --genealogic-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);

    /* Transitions */
    --genealogic-transition: 0.2s ease;
    --genealogic-transition-slow: 0.3s ease;
}

/* ==========================================
   Typography - Google Font Import
   ========================================== */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap');

/* ==========================================
   Default Placeholder Image (Genealogic icon SVG)
   ========================================== */
img[src$="placeholder-dog.svg"] {
    background-color: #f0f0f0;
    object-fit: contain !important;
    padding: 15%;
    box-sizing: border-box;
}
/* Small circular thumbnails: fixed px padding so icon doesn't shrink on wide screens */
.dog-result img[src$="placeholder-dog.svg"],
.dog-search-result img[src$="placeholder-dog.svg"],
.parent-dog img[src$="placeholder-dog.svg"],
.notification-item img[src$="placeholder-dog.svg"],
.node-content img[src$="placeholder-dog.svg"],
.glp-kennel-card img[src$="placeholder-dog.svg"],
.dp-grid-item img[src$="placeholder-dog.svg"] {
    padding: 8px;
}

/* ==========================================
   Infinite Scroll — Skeleton Cards
   ========================================== */
@keyframes glp-skeleton-pulse {
    0%   { opacity: 0.6; }
    50%  { opacity: 0.3; }
    100% { opacity: 0.6; }
}

.glp-skeleton-card {
    border-radius: 16px;
    background: var(--glp-card, #ffffff);
    border: 1px solid var(--glp-border, #e8ecf1);
    overflow: hidden;
    animation: glp-skeleton-pulse 1.5s ease-in-out infinite;
}

.glp-skeleton-image {
    width: 100%;
    height: 180px;
    background: var(--glp-bg, #f0f2f5);
}

.glp-skeleton-circle {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background: var(--glp-bg, #f0f2f5);
    border: 4px solid var(--glp-card, #ffffff);
    margin: -55px auto 0;
    position: relative;
    z-index: 1;
}

.glp-skeleton-content {
    padding: 20px;
    padding-top: 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.glp-skeleton-line {
    height: 14px;
    border-radius: 7px;
    background: var(--glp-bg, #f0f2f5);
}

.glp-skeleton-line-title {
    width: 60%;
    height: 18px;
}

.glp-skeleton-line-sub {
    width: 40%;
}

/* Sentinel — invisible trigger for IntersectionObserver */
.glp-infinite-sentinel {
    width: 100%;
    height: 1px;
    grid-column: 1 / -1;  /* span full grid width */
}

/* ==========================================
   Base Component Styles
   ========================================== */

/* Buttons */
.genealogic-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    font-family: var(--genealogic-font);
    font-size: var(--genealogic-font-size-sm);
    font-weight: 600;
    line-height: 1.4;
    border: none;
    border-radius: var(--genealogic-radius-pill);
    cursor: pointer;
    transition: all var(--genealogic-transition);
    text-decoration: none;
    white-space: nowrap;
}

.genealogic-btn-primary {
    background: var(--genealogic-primary);
    color: var(--genealogic-white);
}

.genealogic-btn-primary:hover {
    background: var(--genealogic-primary-hover);
    color: var(--genealogic-white);
}

.genealogic-btn-dark {
    background: var(--genealogic-black);
    color: var(--genealogic-white);
}

.genealogic-btn-dark:hover {
    background: var(--genealogic-dark);
    color: var(--genealogic-white);
}

.genealogic-btn-outline {
    background: transparent;
    color: var(--genealogic-black);
    border: 1.5px solid var(--genealogic-gray-300);
}

.genealogic-btn-outline:hover {
    border-color: var(--genealogic-black);
}

.genealogic-btn-sm {
    padding: 6px 16px;
    font-size: var(--genealogic-font-size-xs);
}

.genealogic-btn-lg {
    padding: 14px 32px;
    font-size: var(--genealogic-font-size-base);
}

/* Cards */
.genealogic-card {
    background: var(--genealogic-white);
    border-radius: var(--genealogic-radius-md);
    box-shadow: var(--genealogic-shadow-sm);
    overflow: hidden;
    transition: box-shadow var(--genealogic-transition);
}

.genealogic-card:hover {
    box-shadow: var(--genealogic-shadow-md);
}

/* Inputs */
.genealogic-input {
    width: 100%;
    padding: 10px 14px;
    font-family: var(--genealogic-font);
    font-size: var(--genealogic-font-size-sm);
    border: var(--genealogic-border);
    border-radius: var(--genealogic-radius-sm);
    outline: none;
    transition: border-color var(--genealogic-transition);
    box-sizing: border-box;
}

.genealogic-input:focus {
    border-color: var(--genealogic-primary);
}

/* Badges */
.genealogic-badge {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: var(--genealogic-font-size-xs);
    font-weight: 600;
    border-radius: var(--genealogic-radius-pill);
    line-height: 1.4;
}

.genealogic-badge-primary {
    background: var(--genealogic-primary-light);
    color: var(--genealogic-primary);
}

.genealogic-badge-success {
    background: #e8f5e9;
    color: var(--genealogic-success);
}

.genealogic-badge-danger {
    background: #fde8e8;
    color: var(--genealogic-danger);
}

/* Modal overlay */
.genealogic-overlay {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    z-index: 99999;
    justify-content: center;
    align-items: center;
}

.genealogic-overlay.active {
    display: flex;
}

.genealogic-modal {
    background: var(--genealogic-white);
    border-radius: var(--genealogic-radius-lg);
    max-width: 90vw;
    max-height: 90vh;
    overflow-y: auto;
    box-shadow: var(--genealogic-shadow-lg);
}

/* Loader spinner */
.genealogic-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--genealogic-gray-300);
    border-top-color: var(--genealogic-primary);
    border-radius: 50%;
    animation: genealogic-spin 0.6s linear infinite;
}

@keyframes genealogic-spin {
    to { transform: rotate(360deg); }
}

/* Verified badge */
.genealogic-verified-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    color: var(--genealogic-info);
    font-size: var(--genealogic-font-size-xs);
    font-weight: 600;
}

/* ==========================================
   Utility classes
   ========================================== */
.genealogic-text-center { text-align: center; }
.genealogic-text-right { text-align: right; }
.genealogic-mt-sm { margin-top: var(--genealogic-gap-sm); }
.genealogic-mt-md { margin-top: var(--genealogic-gap-md); }
.genealogic-mt-lg { margin-top: var(--genealogic-gap-lg); }
.genealogic-mb-sm { margin-bottom: var(--genealogic-gap-sm); }
.genealogic-mb-md { margin-bottom: var(--genealogic-gap-md); }
.genealogic-mb-lg { margin-bottom: var(--genealogic-gap-lg); }
.genealogic-hidden { display: none !important; }

/* ==========================================
   Responsive base
   ========================================== */
@media (max-width: 768px) {
    .genealogic-btn {
        padding: 8px 18px;
        font-size: var(--genealogic-font-size-xs);
    }

    .genealogic-btn-lg {
        padding: 10px 24px;
        font-size: var(--genealogic-font-size-sm);
    }
}
