:root {
    --brand-black: #1a1a1a;
    --brand-ink: #333333;
    --brand-gold: #d4af37;
    --brand-gold-dark: #b8941f;
    --brand-gold-soft: #f7f4ee;
    --brand-muted: #8b7355;
    --brand-soft: #f3f1ec;
    --bs-primary: #1a1a1a;
    --bs-primary-rgb: 26, 26, 26;
    --bs-link-color: #1a1a1a;
    --bs-link-hover-color: #b8941f;
    --bs-focus-ring-color: rgba(212, 175, 55, 0.35);
}

body {
    background-color: #f5f5f5;
    color: #333333;
}

body.auth-page {
    background: linear-gradient(
        135deg,
        #f5f5f5 0%,
        #f3f1ec 45%,
        #fff8e7 100%
    );
    background-attachment: fixed;
}

body.auth-page main.container,
body.auth-page .site-footer {
    position: relative;
    z-index: 1;
}

body.auth-page main.container {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    flex-grow: 1;
    width: 100%;
    padding-top: 2rem;
    padding-bottom: 2rem;
}

body.auth-page main.container > .row {
    width: 100%;
    flex-shrink: 0;
    margin-left: 0;
    margin-right: 0;
}

body.auth-page .brand-subtitle {
    text-transform: none;
    font-size: 0.82rem;
    letter-spacing: 0.02em;
    line-height: 1.35;
    max-width: 22rem;
    margin-left: auto;
    margin-right: auto;
}

body.auth-page .site-footer {
    background: #fff;
}

a {
    color: var(--brand-black);
}

a:hover {
    color: var(--brand-gold-dark);
}

.btn-primary {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--brand-black);
    --bs-btn-border-color: var(--brand-black);
    --bs-btn-hover-color: var(--brand-black);
    --bs-btn-hover-bg: var(--brand-gold);
    --bs-btn-hover-border-color: var(--brand-gold);
    --bs-btn-active-color: var(--brand-black);
    --bs-btn-active-bg: var(--brand-gold-dark);
    --bs-btn-active-border-color: var(--brand-gold-dark);
    --bs-btn-disabled-bg: var(--brand-black);
    --bs-btn-disabled-border-color: var(--brand-black);
}

.btn-outline-primary {
    --bs-btn-color: var(--brand-black);
    --bs-btn-border-color: var(--brand-black);
    --bs-btn-hover-color: var(--brand-black);
    --bs-btn-hover-bg: var(--brand-gold);
    --bs-btn-hover-border-color: var(--brand-gold);
    --bs-btn-active-color: var(--brand-black);
    --bs-btn-active-bg: var(--brand-gold-dark);
    --bs-btn-active-border-color: var(--brand-gold-dark);
}

.bg-primary {
    background-color: var(--brand-black) !important;
}

.text-primary {
    color: var(--brand-gold) !important;
}

.badge.bg-primary {
    background-color: var(--brand-gold) !important;
    color: var(--brand-black) !important;
}

.navbar.bg-primary {
    background: #1a1a1a !important;
    box-shadow: 0 2px 12px rgba(26, 26, 26, 0.18);
}

.navbar-dark .navbar-nav .nav-link.active,
.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
    color: var(--brand-gold);
}

.navbar-dark .navbar-nav .dropdown-toggle.active {
    color: var(--brand-gold);
}

.form-control:focus,
.form-select:focus {
    border-color: rgba(212, 175, 55, 0.7);
    box-shadow: 0 0 0 0.25rem rgba(212, 175, 55, 0.18);
}

.login-logo-wrap { width: 100%; display: flex; justify-content: center; }
.login-logo { display: block; width: auto; max-width: 280px; height: auto; max-height: 44px; object-fit: contain; }
.navbar-logo { height: 40px; width: auto; max-width: 190px; object-fit: contain; flex-shrink: 0; }

.brand-label { text-align: center; margin-top: 0.85rem; line-height: 1.25; }
.brand-title {
    display: block;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--brand-gold);
}
.brand-subtitle {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--brand-muted);
    text-transform: uppercase;
}
.brand-label-nav { text-align: left; margin-top: 0; }
.brand-label-nav .brand-title {
    font-size: 1rem;
    color: var(--brand-gold);
    letter-spacing: 0.06em;
}
.brand-label-nav .brand-subtitle {
    font-size: 0.62rem;
    color: rgba(255, 255, 255, 0.82);
    letter-spacing: 0.04em;
}
@media (min-width: 992px) {
    .brand-label-nav .brand-subtitle { font-size: 0.68rem; white-space: nowrap; }
}

.card {
    border-color: rgba(26, 26, 26, 0.08);
    box-shadow: 0 2px 10px rgba(26, 26, 26, 0.05);
}

.stat-card { border: none; box-shadow: 0 2px 10px rgba(26, 26, 26, 0.07); }
.navbar-brand { font-weight: 600; }
.navbar-nav .dropdown-menu { margin-top: 0; border-color: rgba(26, 26, 26, 0.08); }
.navbar-nav .dropdown-item.active {
    background-color: var(--brand-gold);
    color: var(--brand-black);
}
.card-header {
    font-weight: 600;
    background: #fff;
    border-bottom-color: rgba(26, 26, 26, 0.08);
}
.font-monospace { font-size: 0.85rem; }
table .form-control-sm { min-width: 100px; }
.vc-card { border: none; box-shadow: 0 2px 8px rgba(26, 26, 26, 0.08); }
.vc-now { box-shadow: 0 0 0 2px var(--brand-gold), 0 4px 16px rgba(212, 175, 55, 0.28) !important; }
.pulse-dot { animation: pulse 1.5s infinite; }
@keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.5} }
.vc-mini-cal { border: none; box-shadow: 0 2px 8px rgba(26, 26, 26, 0.08); }
.vc-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; text-align: center; }
.vc-cal-head span { font-size: 0.7rem; font-weight: 600; color: var(--brand-muted); padding: 4px 0; }
.vc-cal-day { display: block; position: relative; padding: 6px 2px 10px; font-size: 0.85rem; text-decoration: none; color: #212529; border-radius: 6px; }
.vc-cal-day:hover { background: var(--brand-gold-soft); color: var(--brand-black); }
.vc-cal-day.today { font-weight: 700; color: var(--brand-black); }
.vc-cal-day.selected { background: var(--brand-gold); color: var(--brand-black); }
.vc-cal-day.selected:hover { background: var(--brand-gold-dark); color: #fff; }
.vc-cal-empty { min-height: 32px; }
.vc-cal-dot { position: absolute; bottom: 2px; left: 50%; transform: translateX(-50%); width: 5px; height: 5px; border-radius: 50%; background: var(--brand-gold); }
.vc-cal-day.selected .vc-cal-dot { background: var(--brand-black); }
.vc-cal-dot.multi { width: 7px; border-radius: 3px; }

.judgment-card { border: none; box-shadow: 0 2px 12px rgba(26, 26, 26, 0.08); overflow: hidden; }
.judgment-card .card-header {
    background: linear-gradient(135deg, #1a1a1a 0%, #2d2d2d 55%, #d4af37 100%);
    color: #fff;
    border: none;
}
.judgment-card .card-header .btn-modifica { color: #fff; border-color: rgba(255,255,255,.6); font-size: .75rem; padding: .15rem .5rem; }
.judgment-card .card-header .btn-modifica:hover { background: rgba(255,255,255,.15); color: #fff; border-color: #fff; }
.judgment-overall { width: 88px; height: 88px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-direction: column; font-weight: 700; border: 4px solid; margin: 0 auto .75rem; }
.judgment-overall .score-num { font-size: 2rem; line-height: 1; }
.judgment-overall .score-max { font-size: .7rem; opacity: .75; }
.judgment-character {
    display: inline-block;
    padding: .35rem .85rem;
    border-radius: 999px;
    font-weight: 600;
    font-size: .85rem;
    background: linear-gradient(135deg, var(--brand-gold-soft), var(--brand-soft));
    color: var(--brand-black);
}
.judgment-meter { margin-bottom: .65rem; }
.judgment-meter:last-child { margin-bottom: 0; }
.judgment-meter-label { display: flex; justify-content: space-between; font-size: .8rem; font-weight: 600; margin-bottom: .2rem; }
.judgment-meter-bar { height: 8px; background: #e9ecef; border-radius: 999px; overflow: hidden; }
.judgment-meter-fill { height: 100%; border-radius: 999px; transition: width .3s ease; }
.judgment-note-box {
    background: var(--brand-gold-soft);
    border-left: 4px solid var(--brand-gold);
    border-radius: 0 6px 6px 0;
    padding: .65rem .85rem;
    font-size: .85rem;
    margin-top: .75rem;
}
.judgment-empty { text-align: center; padding: 1rem 0; color: #6c757d; }

.page-link {
    color: var(--brand-black);
}
.page-link:hover {
    color: var(--brand-black);
    background-color: var(--brand-gold-soft);
}
.active > .page-link,
.page-link.active {
    background-color: var(--brand-gold);
    border-color: var(--brand-gold);
    color: var(--brand-black) !important;
}

.site-footer {
    background: #fff;
    border-top: 1px solid rgba(26, 26, 26, 0.08);
    color: var(--brand-muted);
    font-size: 0.82rem;
}
.site-footer-copy {
    color: var(--brand-black);
    font-weight: 500;
}
.site-footer-credit {
    color: #6c757d;
    font-size: 0.78rem;
}

.contact-phone { white-space: nowrap; }
.contact-phone-link {
    color: var(--brand-ink);
    text-decoration: none;
    white-space: nowrap;
    font-weight: 500;
}
.contact-phone-link:hover {
    color: var(--brand-gold-dark);
    text-decoration: underline;
}
.contact-email-link {
    color: var(--brand-ink);
    text-decoration: none;
    overflow-wrap: anywhere;
}
.contact-email-link:hover {
    color: var(--brand-gold-dark);
    text-decoration: underline;
}
.contact-wa-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    color: #25d366 !important;
    vertical-align: middle;
    margin-left: 0.25rem;
}
.contact-wa-icon {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
    transition: transform 0.15s ease, filter 0.15s ease;
}
.contact-wa-link:hover,
.contact-wa-link:focus {
    color: #1ebe57 !important;
}
.contact-wa-link:hover .contact-wa-icon {
    transform: scale(1.1);
    filter: brightness(0.92);
}
