/* ==========================================================================
   Likano.Ge — shared design system
   Single source of truth for color, radius, shadow and typography tokens.
   Loaded once in _Layout.cshtml; every page-level <style> block reuses the
   same custom properties so the whole public site reads as one product.
   ========================================================================== */

:root {
    --font-ka: 'BPG Arial', 'Noto Sans Georgian', sans-serif;
    --font-en: 'Inter', sans-serif;

    /* Single accent — no competing gradients across pages */
    --primary: #2554eb;
    --primary-dark: #1a3fc4;
    --primary-light: #5b7cf5;
    --primary-soft: #eef2ff;

    --success: #12b76a;
    --success-soft: #ecfdf3;
    --success-ink: #067647;

    --danger: #f04438;
    --danger-soft: #fef3f2;
    --danger-ink: #b42318;

    --warning-soft: #fffaeb;
    --warning-ink: #b54708;

    --ink: #101828;
    --ink-muted: #667085;
    --ink-faint: #98a2b3;

    --surface: #ffffff;
    --surface-alt: #f8fafc;
    --canvas: #f7f8fb;
    --border: #e4e7ec;

    --radius-sm: 10px;
    --radius-md: 14px;
    --radius-lg: 20px;
    --radius-xl: 28px;
    --radius-pill: 999px;

    --shadow-xs: 0 1px 2px rgba(16, 24, 40, .06);
    --shadow-sm: 0 2px 10px rgba(16, 24, 40, .06);
    --shadow-md: 0 12px 28px -8px rgba(16, 24, 40, .14);
    --shadow-lg: 0 28px 56px -16px rgba(16, 24, 40, .20);

    --ease: cubic-bezier(.4, 0, .2, 1);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    font-family: var(--font-ka);
    color: var(--ink);
    background: var(--canvas);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

::selection {
    background: var(--primary-soft);
    color: var(--primary-dark);
}

a {
    color: var(--primary);
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 800;
    letter-spacing: -0.01em;
    color: var(--ink);
}

/* ---- Bootstrap component overrides kept minimal & consistent ---- */
.btn {
    border-radius: var(--radius-sm);
    font-weight: 600;
    transition: transform .2s var(--ease), box-shadow .2s var(--ease), background-color .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}

.btn-primary {
    background: var(--primary);
    border-color: var(--primary);
    color: #fff;
}

    .btn-primary:hover,
    .btn-primary:focus {
        background: var(--primary-dark);
        border-color: var(--primary-dark);
    }

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus,
.form-control:focus, .form-select:focus, .form-check-input:focus {
    box-shadow: 0 0 0 4px var(--primary-soft);
}

.form-control, .form-select {
    border-radius: var(--radius-sm);
    border-color: var(--border);
}

    .form-control:focus, .form-select:focus {
        border-color: var(--primary);
    }

.text-danger {
    color: var(--danger-ink) !important;
}

.alert {
    border-radius: var(--radius-md);
    border: 1px solid transparent;
    font-weight: 500;
}

.alert-success {
    background: var(--success-soft);
    color: var(--success-ink);
    border-color: #d3f4e3;
}

.alert-danger {
    background: var(--danger-soft);
    color: var(--danger-ink);
    border-color: #fbd5d1;
}

.alert-info {
    background: var(--primary-soft);
    color: var(--primary-dark);
    border-color: #dbe3fd;
}

.alert-warning {
    background: var(--warning-soft);
    color: var(--warning-ink);
    border-color: #fde3ad;
}

/* Number input spinner cleanup, used on the filter form */
input[type=number]::-webkit-inner-spin-button,
input[type=number]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type=number] {
    -moz-appearance: textfield;
}
