:root {
    --gp-primary: #0a4fb3;
    --gp-primary-strong: #083c87;
    --gp-accent: #ffd43b;
    --gp-bg: #f4f8fd;
    --gp-surface: #ffffff;
    --gp-text: #1f2a37;
    --gp-muted: #6b7785;
    --gp-border: #d7e1ef;
}

html { font-size: 15px; position: relative; min-height: 100%; }
body {
    font-family: 'Noto Sans', 'Segoe UI', Tahoma, sans-serif;
    background-color: var(--gp-bg);
    color: var(--gp-text);
}

a {
    color: var(--gp-primary);
}

a:hover {
    color: var(--gp-primary-strong);
}

.navbar,
footer {
    background: var(--gp-surface) !important;
}

.navbar {
    border-bottom: 1px solid var(--gp-border) !important;
}

.nav-link {
    color: var(--gp-text) !important;
}

.nav-link:hover,
.nav-link:focus,
.navbar .nav-link.active {
    color: var(--gp-primary) !important;
}

.dropdown-menu {
    border: 1px solid var(--gp-border);
    box-shadow: 0 .5rem 1rem rgba(8, 60, 135, .08);
}

.dropdown-item:hover,
.dropdown-item:focus {
    background-color: #eaf2ff;
    color: var(--gp-primary-strong);
}

.btn {
    border-radius: .5rem;
    font-weight: 600;
}

.btn-warning {
    background-color: var(--gp-accent);
    border-color: var(--gp-accent);
    color: #1f2a37;
}

.btn-warning:hover,
.btn-warning:focus {
    background-color: #ffca1a;
    border-color: #ffca1a;
    color: #1f2a37;
}

.btn-dark,
.btn-primary {
    background-color: var(--gp-primary);
    border-color: var(--gp-primary);
}

.btn-dark:hover,
.btn-dark:focus,
.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--gp-primary-strong);
    border-color: var(--gp-primary-strong);
}

.form-control,
.form-select {
    border-color: var(--gp-border);
}

.form-control:focus,
.form-select:focus {
    border-color: #94b9f3;
    box-shadow: 0 0 0 .2rem rgba(10, 79, 179, .15);
}

.card {
    border: 1px solid var(--gp-border);
    border-radius: .8rem;
    box-shadow: 0 .25rem .9rem rgba(8, 60, 135, .06);
}

.card-header.bg-dark {
    background-color: var(--gp-primary) !important;
}

.text-danger {
    color: #dc3545 !important;
}

.badge.bg-danger {
    background-color: var(--gp-primary) !important;
}

.badge.bg-warning {
    background-color: var(--gp-accent) !important;
    color: #1f2a37 !important;
}

.alert-info {
    background-color: #eaf2ff;
    border-color: #bfd5fb;
    color: #174074;
}

.table > :not(caption) > * > * {
    border-color: var(--gp-border);
}

.hero-banner {
    background: linear-gradient(135deg, #ffffff 0%, #eaf2ff 100%);
    min-height: 320px;
}

.product-card { transition: transform .15s ease, box-shadow .15s ease; }
.product-card:hover { transform: translateY(-4px); box-shadow: 0 .75rem 1.2rem rgba(8, 60, 135, .15) !important; }
.product-img { height: 220px; object-fit: cover; }
.product-title {
    font-size: .95rem; display: -webkit-box; -webkit-line-clamp: 2;
    -webkit-box-orient: vertical; overflow: hidden; min-height: 2.6em;
}
.category-card { transition: transform .15s ease; }
.category-card:hover { transform: translateY(-3px); }

footer .text-muted,
.text-muted {
    color: var(--gp-muted) !important;
}

.variant-option.active { background-color: var(--gp-primary) !important; color: #fff !important; }

@media print {
    header, footer, .btn { display: none !important; }
}
