:root {
    --rns-orange: #ff5900;
    --rns-orange-dark: #e04e00;
    --rns-orange-soft: #fff1e8;
    --rns-blue: #09006a;
    --rns-blue-mid: #32529e;
    --rns-blue-soft: #eef0f8;
    --bs-primary: #ff5900;
    --bs-primary-rgb: 255, 89, 0;
    --bs-link-color: #32529e;
    --bs-link-hover-color: #09006a;
    --bs-focus-ring-color: rgba(255, 89, 0, 0.25);
}

body {
    background-color: #faf8f6;
    color: #1a1a2e;
}

body.auth-page {
    background: linear-gradient(
        135deg,
        #faf8f6 0%,
        #eef0f8 50%,
        #fff1e8 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(--rns-blue-mid);
}

a:hover {
    color: var(--rns-blue);
}

.btn-primary {
    --bs-btn-bg: var(--rns-orange);
    --bs-btn-border-color: var(--rns-orange);
    --bs-btn-hover-bg: var(--rns-orange-dark);
    --bs-btn-hover-border-color: var(--rns-orange-dark);
    --bs-btn-active-bg: var(--rns-orange-dark);
    --bs-btn-active-border-color: var(--rns-orange-dark);
    --bs-btn-disabled-bg: var(--rns-orange);
    --bs-btn-disabled-border-color: var(--rns-orange);
}

.btn-outline-primary {
    --bs-btn-color: var(--rns-orange);
    --bs-btn-border-color: var(--rns-orange);
    --bs-btn-hover-bg: var(--rns-orange);
    --bs-btn-hover-border-color: var(--rns-orange);
    --bs-btn-active-bg: var(--rns-orange-dark);
    --bs-btn-active-border-color: var(--rns-orange-dark);
}

.bg-primary {
    background-color: var(--rns-blue) !important;
}

.text-primary {
    color: var(--rns-orange) !important;
}

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

.navbar.bg-primary {
    background: linear-gradient(135deg, var(--rns-blue) 0%, #12008a 100%) !important;
    box-shadow: 0 2px 12px rgba(9, 0, 106, 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(--rns-orange);
}

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

.form-control:focus,
.form-select:focus {
    border-color: rgba(255, 89, 0, 0.55);
    box-shadow: 0 0 0 0.25rem rgba(255, 89, 0, 0.15);
}

.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(--rns-orange);
}
.brand-subtitle {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.78rem;
    font-weight: 500;
    letter-spacing: 0.03em;
    color: var(--rns-blue-mid);
    text-transform: uppercase;
}
.brand-label-nav { text-align: left; margin-top: 0; }
.brand-label-nav .brand-title {
    font-size: 1rem;
    color: var(--rns-orange);
    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(9, 0, 106, 0.08);
    box-shadow: 0 2px 10px rgba(9, 0, 106, 0.05);
}

.stat-card { border: none; box-shadow: 0 2px 10px rgba(9, 0, 106, 0.07); }
.navbar-brand { font-weight: 600; }
.navbar-nav .dropdown-menu { margin-top: 0; border-color: rgba(9, 0, 106, 0.08); }
.navbar-nav .dropdown-item.active {
    background-color: var(--rns-orange);
    color: #fff;
}
.card-header {
    font-weight: 600;
    background: #fff;
    border-bottom-color: rgba(9, 0, 106, 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(9, 0, 106, 0.08); }
.vc-now { box-shadow: 0 0 0 2px var(--rns-orange), 0 4px 16px rgba(255, 89, 0, 0.22) !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(9, 0, 106, 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(--rns-blue-mid); 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(--rns-orange-soft); color: var(--rns-blue); }
.vc-cal-day.today { font-weight: 700; color: var(--rns-blue); }
.vc-cal-day.selected { background: var(--rns-orange); color: #fff; }
.vc-cal-day.selected:hover { background: var(--rns-orange-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(--rns-orange); }
.vc-cal-day.selected .vc-cal-dot { background: #fff; }
.vc-cal-dot.multi { width: 7px; border-radius: 3px; }

.judgment-card { border: none; box-shadow: 0 2px 12px rgba(9, 0, 106, 0.08); overflow: hidden; }
.judgment-card .card-header {
    background: linear-gradient(135deg, var(--rns-blue) 0%, var(--rns-blue-mid) 55%, var(--rns-orange) 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(--rns-orange-soft), var(--rns-blue-soft));
    color: var(--rns-blue);
}
.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(--rns-blue-soft);
    border-left: 4px solid var(--rns-orange);
    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(--rns-blue-mid);
}
.page-link:hover {
    color: var(--rns-blue);
    background-color: var(--rns-orange-soft);
}
.active > .page-link,
.page-link.active {
    background-color: var(--rns-orange);
    border-color: var(--rns-orange);
}

.site-footer {
    background: #fff;
    border-top: 1px solid rgba(9, 0, 106, 0.08);
    color: var(--rns-blue-mid);
    font-size: 0.82rem;
}
.site-footer-copy {
    color: var(--rns-blue);
    font-weight: 500;
}
.site-footer-credit {
    color: #6c757d;
    font-size: 0.78rem;
}

.contact-phone { white-space: nowrap; }
.contact-phone-link {
    color: var(--rns-blue-mid);
    text-decoration: none;
    white-space: nowrap;
    font-weight: 500;
}
.contact-phone-link:hover {
    color: var(--rns-blue);
    text-decoration: underline;
}
.contact-email-link {
    color: var(--rns-blue-mid);
    text-decoration: none;
    word-break: break-all;
}
.contact-email-link:hover {
    color: var(--rns-blue);
    text-decoration: underline;
}
.contact-wa-link { text-decoration: none; }
.contact-wa-badge {
    display: inline-block;
    padding: 0.12rem 0.45rem;
    border-radius: 999px;
    background: #25d366;
    color: #fff;
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    vertical-align: middle;
    transition: background 0.15s ease;
}
.contact-wa-link:hover .contact-wa-badge {
    background: #1da851;
    color: #fff;
}
