html {
  font-size: 14px;
}

@media (min-width: 768px) {
  html {
    font-size: 16px;
  }
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
  box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

html {
  position: relative;
  min-height: 100%;
}

body {
  margin-bottom: 60px;
}

.form-floating > .form-control-plaintext::placeholder, .form-floating > .form-control::placeholder {
  color: var(--bs-secondary-color);
  text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder, .form-floating > .form-control:focus::placeholder {
  text-align: start;
}
/* --- App shell layout --- */
.app-body {
    min-height: 100vh;
    background: #f6f7f9;
}

.app-topbar {
    position: sticky;
    top: 0;
    z-index: 1030;
    background: #fff;
    height: 56px;
    display: flex;
    align-items: center;
}

.app-brand {
    color: #111;
}

.app-shell {
    display: flex;
    min-height: calc(100vh - 56px);
}

.app-sidebar {
    width: 260px;
    background: #fff;
}

.app-main {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.app-footer {
    margin-top: auto;
    background: #fff;
}

/* nav links */
.app-navlink {
    border-radius: 10px;
    color: #222;
    margin: 2px 0;
    padding: 10px 12px;
}

    .app-navlink:hover {
        background: #f1f3f5;
        color: #111;
    }

    .app-navlink.active {
        background: #e9f2ff;
        font-weight: 600;
    }

    .card.shadow-sm {
        border-radius: 16px;
}

    .table thead th {
        font-weight: 600;
}

/* mobile sidebar */
@media (max-width: 767.98px) {
    .app-sidebar {
        position: fixed;
        top: 56px;
        left: 0;
        bottom: 0;
        transform: translateX(-100%);
        transition: transform .2s ease-in-out;
        z-index: 1040;
        box-shadow: 0 10px 25px rgba(0,0,0,.15);
    }

        .app-sidebar.is-open {
            transform: translateX(0);
        }
}
:root {
    --brand-red: #b30000; /* rosso istituzionale */
    --brand-red-dark: #8f0000;
    --brand-gray: #6c757d; /* grigio elegante */
    --brand-gray-light: #f2f2f2;
}

/* Titoli */
h1, h2, h3 {
    color: var(--brand-red);
}

/* Bottoni primari */
.btn-primary {
    background-color: var(--brand-red);
    border-color: var(--brand-red);
}

    .btn-primary:hover {
        background-color: var(--brand-red-dark);
        border-color: var(--brand-red-dark);
    }

/* Testo muted */
.text-muted {
    color: var(--brand-gray) !important;
}
