/* =========================================================================
   ShotFive — Area Riservata / tema Dark allineato all'app mobile
   Livello di override applicato SOPRA Bootstrap 3 (e 4 nelle pagine login).
   Nessuna modifica al markup richiesta: ridisegna i componenti esistenti
   (navbar, thumbnail, well, panel, btn, form-control, table, alert...).

   Palette dell'app (Colors.dark):
     primary #fd7c26 · text #ECEDEE · card rgb(44,44,44) · background #111
     icon/tab #9BA1A6
   ========================================================================= */

:root {
    color-scheme: dark;

    --lq-bg: #111;
    --lq-bg-deep: #0b0b0b;

    /* superfici: la "card" dell'app e' rgb(44,44,44) */
    --lq-surface: rgb(44, 44, 44);
    --lq-surface-2: #232323;
    --lq-surface-3: #383838;
    --lq-surface-soft: rgba(255, 255, 255, 0.06);

    --lq-ink: #ECEDEE;
    --lq-ink-soft: #9BA1A6;
    --lq-ink-faint: #7b8186;

    --lq-primary: #fd7c26;
    --lq-primary-2: #ff9a52;
    --lq-primary-dim: rgba(253, 124, 38, 0.16);
    --lq-primary-line: rgba(253, 124, 38, 0.45);

    --lq-success: #34c759;
    --lq-success-2: #5ce07a;
    --lq-danger: #ff453a;
    --lq-danger-2: #ff6b61;
    --lq-warning: #ff9f0a;
    --lq-warning-2: #ffb84d;
    --lq-info: #64d2ff;
    --lq-info-2: #8fdfff;

    --lq-stroke: rgba(255, 255, 255, 0.08);
    --lq-stroke-strong: rgba(255, 255, 255, 0.16);
    --lq-stroke-dim: rgba(255, 255, 255, 0.07);

    --lq-blur: saturate(150%) blur(20px);
    --lq-blur-strong: saturate(160%) blur(30px);

    --lq-radius: 16px;
    --lq-radius-sm: 12px;
    --lq-radius-pill: 999px;

    --lq-shadow: 0 12px 28px -18px rgba(0, 0, 0, 0.9);
    --lq-shadow-lift: 0 22px 44px -20px rgba(0, 0, 0, 0.95);
    --lq-inner: inset 0 1px 0 rgba(255, 255, 255, 0.04);

    --lq-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- Base ---------------------------------------------------- */

html {
    -webkit-text-size-adjust: 100%;
    min-height: 100%;
    /* Sfondo ambientale: come nell'app e' sostanzialmente piatto, con un
       alone caldo appena percettibile in alto. Fissato rispetto al viewport
       (non su uno pseudo-elemento position:fixed) perche' con i
       backdrop-filter Chrome sfarfalla durante lo scroll. */
    background-color: var(--lq-bg);
    background-image:
        radial-gradient(52rem 30rem at 50% -14%, rgba(253, 124, 38, 0.13), transparent 70%),
        radial-gradient(38rem 30rem at 100% 100%, rgba(253, 124, 38, 0.06), transparent 68%),
        linear-gradient(180deg, #151515 0%, var(--lq-bg) 42%, var(--lq-bg-deep) 100%);
    background-repeat: no-repeat;
    background-size: 100% 100vh;
}

body {
    background: transparent;
    color: var(--lq-ink);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 15px;
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    min-height: 100vh;
}

h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4 {
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    color: var(--lq-ink);
    font-weight: 700;
    letter-spacing: -0.02em;
}

h1, .h1 { font-size: 32px; }
h2, .h2 { font-size: 26px; }
h3, .h3 { font-size: 21px; }
h4, .h4 { font-size: 18px; }

p { color: var(--lq-ink); }

a {
    color: var(--lq-primary);
    text-decoration: none;
    transition: color 0.2s var(--lq-ease), opacity 0.2s var(--lq-ease);
}

a:hover, a:focus {
    color: var(--lq-primary-2);
    text-decoration: none;
}

hr {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.14), transparent);
    margin: 18px 0;
}

::selection {
    background: rgba(253, 124, 38, 0.32);
    color: #fff;
}

small, .small, .text-muted { color: var(--lq-ink-soft); }

.container, .container-fluid {
    padding-top: 4px;
    padding-bottom: 32px;
}

.container-fluid {
    max-width: 1320px;
    margin: 0 auto;
}

/* la navbar contiene un .container-fluid: senza questo reset eredita il
   padding di pagina e l'header diventa ~36px piu' alto del dovuto */
.navbar .container,
.navbar .container-fluid {
    padding-top: 0;
    padding-bottom: 0;
    max-width: none;
}

/* scrollbar coerente col tema */
* {
    scrollbar-color: rgba(255, 255, 255, 0.22) transparent;
}

::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.18);
    border-radius: var(--lq-radius-pill);
    border: 2px solid transparent;
    background-clip: content-box;
}
::-webkit-scrollbar-thumb:hover { background: rgba(255, 255, 255, 0.3); background-clip: content-box; }

/* ---------- Superfici ------------------------------------------------ */

.panel,
.well,
.thumbnail,
.card,
.jumbotron,
.list-group,
.lq-glass {
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius);
    box-shadow: var(--lq-shadow), var(--lq-inner);
    color: var(--lq-ink);
}

.panel, .well, .card, .jumbotron {
    padding: 22px;
    margin-bottom: 22px;
}

.well-sm { padding: 14px; border-radius: var(--lq-radius-sm); }
.well-lg { padding: 30px; }

.thumbnail {
    padding: 18px;
    margin-bottom: 22px;
    transition: transform 0.35s var(--lq-ease), box-shadow 0.35s var(--lq-ease), background 0.35s var(--lq-ease), border-color 0.35s var(--lq-ease);
    position: relative;
    overflow: hidden;
}

.panel { position: relative; overflow: hidden; }

.thumbnail:hover {
    transform: translateY(-3px);
    background: var(--lq-surface-3);
    border-color: var(--lq-stroke-strong);
    box-shadow: var(--lq-shadow-lift), var(--lq-inner);
}

.thumbnail > img,
.thumbnail a > img {
    border-radius: var(--lq-radius-sm);
}

.thumbnail .caption {
    padding: 6px 4px 2px;
    color: var(--lq-ink);
}

.panel-heading {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--lq-stroke-dim);
    padding: 0 0 14px;
    margin-bottom: 16px;
    font-weight: 700;
    font-size: 17px;
    letter-spacing: -0.01em;
    color: var(--lq-ink);
}

.panel-body { padding: 0; }
.panel-footer {
    background: transparent;
    border: 0;
    border-top: 1px solid var(--lq-stroke-dim);
    padding: 14px 0 0;
    margin-top: 16px;
}

.panel-default, .panel-primary, .panel-success, .panel-info, .panel-warning, .panel-danger {
    border-color: var(--lq-stroke);
}

.panel-primary > .panel-heading { color: var(--lq-primary); }

.list-group { padding: 6px; }

.list-group-item {
    background: transparent;
    border: 0;
    border-bottom: 1px solid var(--lq-stroke-dim);
    padding: 13px 14px;
    border-radius: var(--lq-radius-sm);
    color: var(--lq-ink);
}

.list-group-item:last-child { border-bottom: 0; }
.list-group-item:hover { background: rgba(255, 255, 255, 0.05); }

/* ---------- Navbar --------------------------------------------------- */

.navbar {
    border: 0;
    margin-bottom: 24px;
    min-height: 0;
}

/* header a tutta larghezza con hairline in basso: come la barra di
   navigazione dell'app */
.navbar-default,
.navbar-inverse {
    /* niente backdrop-filter: su Chrome un elemento sticky sfocato sopra un
       fondo con gradienti provoca sfarfallii durante lo scroll */
    background: #131313;
    border: 0;
    border-bottom: 1px solid var(--lq-stroke);
    border-radius: 0;
    box-shadow: none;
    margin: 0 0 22px;
    width: 100%;
    position: sticky;
    top: 0;
    z-index: 1030;
}

.navbar-default .navbar-brand {
    color: var(--lq-ink);
    font-weight: 800;
    font-size: 20px;
    letter-spacing: -0.03em;
    padding: 16px 20px;
    height: auto;
}

.navbar-default .navbar-brand:hover { color: var(--lq-primary); }

.navbar-default .navbar-nav > li > a {
    color: var(--lq-ink-soft);
    font-weight: 600;
    padding: 15px 16px;
    border-radius: var(--lq-radius-sm);
    transition: color 0.2s var(--lq-ease), background 0.2s var(--lq-ease);
}

.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus,
.navbar-default .navbar-nav > .open > a,
.navbar-default .navbar-nav > .open > a:hover,
.navbar-default .navbar-nav > .open > a:focus,
.navbar-default .navbar-nav > .active > a {
    color: var(--lq-ink);
    background: rgba(255, 255, 255, 0.08);
}

.navbar-default .navbar-toggle {
    border: 1px solid var(--lq-stroke-strong);
    border-radius: 12px;
    margin: 10px 14px 10px 0;
    background: var(--lq-surface);
}

.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus { background: var(--lq-surface-3); }
.navbar-default .navbar-toggle .icon-bar { background-color: var(--lq-ink-soft); }
.navbar-default .navbar-collapse { border: 0; box-shadow: none; }

@media (max-width: 767px) {
    .navbar-default .navbar-collapse { border-top: 1px solid var(--lq-stroke); }
    .navbar-default .navbar-nav { margin: 6px 0; }
    .navbar-default .navbar-nav > li > a { padding: 12px 16px; }
    .navbar-default .navbar-nav .open .dropdown-menu {
        background: transparent;
        box-shadow: none;
        border: 0;
    }
    .navbar-default .navbar-nav .open .dropdown-menu > li > a { color: var(--lq-ink); }
}

/* ---------- Dropdown -------------------------------------------------- */

.dropdown-menu {
    background: rgba(38, 38, 38, 0.96);
    -webkit-backdrop-filter: var(--lq-blur-strong);
    backdrop-filter: var(--lq-blur-strong);
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius);
    box-shadow: var(--lq-shadow-lift);
    padding: 8px;
    margin-top: 10px;
    overflow: hidden;
}

.dropdown-menu > li > a {
    color: var(--lq-ink);
    padding: 10px 14px;
    border-radius: 10px;
    font-weight: 500;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus {
    background: var(--lq-primary-dim);
    color: var(--lq-primary);
}

.dropdown-menu .divider { background: var(--lq-stroke-dim); margin: 6px 4px; }

/* ---------- Bottoni --------------------------------------------------- */

.btn {
    position: relative;
    border: 1px solid transparent;
    border-radius: var(--lq-radius-sm);
    font-weight: 600;
    letter-spacing: -0.01em;
    padding: 11px 20px;
    box-shadow: none;
    transition: transform 0.22s var(--lq-ease), background 0.22s var(--lq-ease), filter 0.22s var(--lq-ease), border-color 0.22s var(--lq-ease);
    overflow: hidden;
    text-shadow: none;
    white-space: normal;
}

.btn:hover, .btn:focus {
    transform: translateY(-1px);
    filter: brightness(1.08);
    outline: none;
}

.btn:active, .btn.active {
    transform: translateY(0) scale(0.985);
    filter: brightness(0.94);
}

.btn:focus-visible {
    outline: 2px solid var(--lq-primary);
    outline-offset: 2px;
}

.btn-lg { padding: 14px 26px; font-size: 17px; border-radius: 14px; }
.btn-sm { padding: 8px 15px; font-size: 13px; border-radius: 10px; }
.btn-xs { padding: 5px 11px; font-size: 12px; border-radius: 9px; }
.btn + .btn { margin-left: 6px; }
.btn-block + .btn-block { margin-left: 0; }

.btn-default {
    background: var(--lq-surface-3);
    border-color: var(--lq-stroke-strong);
    color: var(--lq-ink);
}

.btn-default:hover, .btn-default:focus, .btn-default:active {
    background: #454545;
    color: var(--lq-ink);
    border-color: var(--lq-stroke-strong);
}

.btn-primary,
.btn-primary:hover, .btn-primary:focus, .btn-primary:active, .btn-primary.active {
    background: var(--lq-primary);
    border-color: transparent;
    color: #1a1005;
}

.btn-success,
.btn-success:hover, .btn-success:focus, .btn-success:active, .btn-success.active {
    background: var(--lq-success);
    border-color: transparent;
    color: #06230f;
}

.btn-danger,
.btn-danger:hover, .btn-danger:focus, .btn-danger:active, .btn-danger.active {
    background: var(--lq-danger);
    border-color: transparent;
    color: #2b0603;
}

.btn-warning,
.btn-warning:hover, .btn-warning:focus, .btn-warning:active, .btn-warning.active {
    background: var(--lq-warning);
    border-color: transparent;
    color: #2b1a00;
}

.btn-info,
.btn-info:hover, .btn-info:focus, .btn-info:active, .btn-info.active {
    background: var(--lq-info);
    border-color: transparent;
    color: #05222e;
}

.btn-link {
    box-shadow: none;
    color: var(--lq-primary);
    padding-left: 8px;
    padding-right: 8px;
}

.btn-link:hover, .btn-link:focus { color: var(--lq-primary-2); transform: none; text-decoration: underline; }

.btn.disabled, .btn[disabled], fieldset[disabled] .btn {
    opacity: 0.4;
    box-shadow: none;
    transform: none;
    filter: grayscale(25%);
}

.btn-group > .btn:first-child:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

.btn-group > .btn:last-child:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.btn-group > .btn + .btn { margin-left: 0; }
.close { color: var(--lq-ink); opacity: 0.6; text-shadow: none; }
.close:hover { color: var(--lq-ink); opacity: 1; }

/* ---------- Form ------------------------------------------------------ */

label, .control-label {
    font-weight: 600;
    color: var(--lq-ink-soft);
    font-size: 13px;
    letter-spacing: 0.01em;
    margin-bottom: 6px;
}

.form-control,
select.form-control,
textarea.form-control,
input[type="text"].form-control,
input[type="password"].form-control,
input[type="email"].form-control,
input[type="number"].form-control,
input[type="date"].form-control {
    height: auto;
    min-height: 44px;
    padding: 11px 14px;
    font-size: 15px;
    color: var(--lq-ink);
    background: var(--lq-surface-2);
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-sm);
    box-shadow: none;
    transition: border-color 0.2s var(--lq-ease), box-shadow 0.2s var(--lq-ease), background 0.2s var(--lq-ease);
}

select.form-control option { background: var(--lq-surface-2); color: var(--lq-ink); }
textarea.form-control { min-height: 110px; }

.form-control:focus {
    background: var(--lq-surface);
    border-color: var(--lq-primary-line);
    box-shadow: 0 0 0 3px rgba(253, 124, 38, 0.18);
    outline: none;
}

.form-control::-webkit-input-placeholder { color: var(--lq-ink-faint); }
.form-control::placeholder { color: var(--lq-ink-faint); }
.form-control[disabled], .form-control[readonly] { background: rgba(255, 255, 255, 0.04); color: var(--lq-ink-soft); opacity: 0.8; }

/* icone native (date picker, spinner) leggibili su fondo scuro */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(1) opacity(0.6); cursor: pointer; }

.form-group { margin-bottom: 18px; }
.help-block { color: var(--lq-ink-faint); font-size: 12.5px; }

.input-group-addon {
    background: var(--lq-surface-3);
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-sm);
    color: var(--lq-ink-soft);
}

.has-error .form-control { border-color: rgba(255, 69, 58, 0.6); }
.has-error .form-control:focus { box-shadow: 0 0 0 3px rgba(255, 69, 58, 0.2); }
.has-error .control-label, .has-error .help-block { color: var(--lq-danger); }
.has-success .form-control { border-color: rgba(52, 199, 89, 0.55); }

input[type="checkbox"], input[type="radio"] {
    accent-color: var(--lq-primary);
    width: 17px;
    height: 17px;
    vertical-align: -3px;
}

input[type="file"] {
    padding: 10px 0;
    color: var(--lq-ink-soft);
}

input[type="file"]::-webkit-file-upload-button,
input[type="file"]::file-selector-button {
    background: var(--lq-surface-3);
    border: 1px solid var(--lq-stroke-strong);
    border-radius: 10px;
    color: var(--lq-ink);
    padding: 8px 14px;
    margin-right: 12px;
    font-weight: 600;
    cursor: pointer;
}

/* ---------- Alert ----------------------------------------------------- */

.alert {
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius);
    padding: 15px 18px;
    background: var(--lq-surface);
    box-shadow: var(--lq-shadow);
    color: var(--lq-ink);
    font-weight: 500;
}

.alert strong, .alert b { font-weight: 700; }

.alert-success { background: rgba(52, 199, 89, 0.14);  border-color: rgba(52, 199, 89, 0.34);  color: #7ce49a; }
.alert-info    { background: rgba(100, 210, 255, 0.12); border-color: rgba(100, 210, 255, 0.30); color: #9adfff; }
.alert-warning { background: rgba(255, 159, 10, 0.14);  border-color: rgba(255, 159, 10, 0.34);  color: #ffc069; }
.alert-danger  { background: rgba(255, 69, 58, 0.14);   border-color: rgba(255, 69, 58, 0.34);   color: #ff8f87; }
/* i link testuali ereditano il colore dell'alert, i bottoni no: dentro un
   alert un .btn deve restare un bottone con i suoi colori */
.alert-success a:not(.btn),
.alert-info a:not(.btn),
.alert-warning a:not(.btn),
.alert-danger a:not(.btn) { color: inherit; text-decoration: underline; }

/* ---------- Tabelle --------------------------------------------------- */

.table {
    background: transparent;
    border-collapse: separate;
    border-spacing: 0;
    margin-bottom: 0;
    color: var(--lq-ink);
}

.table > thead > tr > th {
    border-bottom: 1px solid var(--lq-stroke-dim);
    color: var(--lq-ink-soft);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
    padding: 12px 14px;
}

.table > tbody > tr > td {
    border-top: 1px solid var(--lq-stroke-dim);
    padding: 13px 14px;
    vertical-align: middle;
    color: var(--lq-ink);
}

.table > tbody > tr:first-child > td { border-top: 0; }
.table-hover > tbody > tr:hover { background: rgba(255, 255, 255, 0.06); }
.table-striped > tbody > tr:nth-of-type(odd) { background: rgba(255, 255, 255, 0.03); }
.table-bordered, .table-bordered > tbody > tr > td, .table-bordered > thead > tr > th { border-color: var(--lq-stroke-dim); }

.table > tbody > tr.active > td,
.table > tbody > tr.success > td { background: rgba(52, 199, 89, 0.14); }
.table > tbody > tr.danger > td { background: rgba(255, 69, 58, 0.14); }
.table > tbody > tr.warning > td { background: rgba(255, 159, 10, 0.14); }
.table > tbody > tr.info > td { background: rgba(100, 210, 255, 0.12); }

.table-responsive,
.table-responsive-force {
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius);
    box-shadow: var(--lq-shadow), var(--lq-inner);
    padding: 8px;
    overflow-x: auto;
}

/* ---------- Label / badge --------------------------------------------- */

.label, .badge {
    border-radius: var(--lq-radius-pill);
    font-weight: 700;
    font-size: 11.5px;
    letter-spacing: 0.02em;
    padding: 5px 11px;
    box-shadow: none;
}

.label-default { background: rgba(255, 255, 255, 0.14); color: var(--lq-ink); }
.label-primary { background: var(--lq-primary); color: #1a1005; }
.label-success { background: var(--lq-success); color: #06230f; }
.label-danger  { background: var(--lq-danger); color: #2b0603; }
.label-warning { background: var(--lq-warning); color: #2b1a00; }
.label-info    { background: var(--lq-info); color: #05222e; }
.badge { background: rgba(255, 255, 255, 0.16); color: var(--lq-ink); }

/* ---------- Modal ----------------------------------------------------- */

.modal-content {
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke-strong);
    border-radius: 20px;
    box-shadow: var(--lq-shadow-lift);
    color: var(--lq-ink);
}

.modal-header, .modal-footer { border-color: var(--lq-stroke-dim); }
.modal-title { color: var(--lq-ink); }
.modal-backdrop.in { opacity: 0.66; }

/* ---------- Progress / paginazione ------------------------------------ */

.progress {
    background: rgba(255, 255, 255, 0.10);
    border-radius: var(--lq-radius-pill);
    box-shadow: none;
    height: 10px;
}

.progress-bar { background: linear-gradient(90deg, var(--lq-primary), var(--lq-primary-2)); box-shadow: none; }

.pagination > li > a, .pagination > li > span {
    border: 1px solid var(--lq-stroke-strong);
    background: var(--lq-surface);
    color: var(--lq-ink);
    margin: 0 3px;
    border-radius: 10px !important;
}

.pagination > li > a:hover, .pagination > li > span:hover { background: var(--lq-surface-3); color: var(--lq-ink); }

.pagination > .active > a, .pagination > .active > span,
.pagination > .active > a:hover, .pagination > .active > span:hover {
    background: var(--lq-primary);
    border-color: transparent;
    color: #1a1005;
}

/* ---------- Login (form-signin, Bootstrap 4) --------------------------- */

.form-signin {
    max-width: 400px;
    margin: 8vh auto 40px;
    padding: 34px 30px 30px;
    /* NIENTE backdrop-filter qui: creerebbe un containing block per gli
       elementi position:fixed discendenti e il badge "protected by reCAPTCHA"
       finirebbe posizionato dentro al box di login invece che nell'angolo
       del viewport. */
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: 22px;
    box-shadow: var(--lq-shadow-lift);
}

.form-signin .form-signin-heading {
    text-align: center;
    margin-bottom: 22px;
    font-size: 25px;
}

.form-signin .form-control {
    margin-bottom: 12px;
    border-radius: var(--lq-radius-sm) !important;
}

.form-signin input[type="email"], .form-signin input[type="password"] {
    margin-bottom: 12px;
    border-radius: var(--lq-radius-sm) !important;
}

.form-signin .btn { width: 100%; }
.form-signin a { display: inline-block; width: 100%; text-align: center; font-size: 13.5px; }
.form-signin .lq-logo { display: block; margin: 0 auto 18px; max-width: 210px; width: 70%; height: auto; }
.mt30 { margin-top: 18px; }

/* ---------- Elementi ricorrenti delle pagine corsi --------------------- */

/* liste allenamenti (declare_allenamenti / recupero_richiesti) */
.radio-list { max-width: 720px; }

.radio-item {
    background: var(--lq-surface) !important;
    border: 1px solid var(--lq-stroke) !important;
    border-radius: var(--lq-radius) !important;
    box-shadow: var(--lq-shadow), var(--lq-inner);
    color: var(--lq-ink);
    padding: 14px !important;
    margin-bottom: 12px !important;
    transition: transform 0.3s var(--lq-ease), border-color 0.3s var(--lq-ease), background 0.3s var(--lq-ease);
}

.radio-item:hover { transform: translateY(-2px); border-color: var(--lq-stroke-strong) !important; background: var(--lq-surface-3) !important; }

.radio-item.disabled {
    background: rgba(255, 255, 255, 0.04) !important;
    box-shadow: none;
    transform: none;
    color: var(--lq-ink-soft);
}

.radio-item .highlight_title { color: var(--lq-primary) !important; letter-spacing: -0.01em; }

/* pagina allenamenti_corso.php */
.training-list {
    max-width: 760px;
    margin: 0 auto;
}

.training-item {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    padding: 14px;
    margin-bottom: 12px;
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius);
    box-shadow: var(--lq-shadow), var(--lq-inner);
    transition: transform 0.3s var(--lq-ease), border-color 0.3s var(--lq-ease);
}

.training-item:hover { transform: translateY(-2px); border-color: var(--lq-stroke-strong); }
.training-item.past { background: rgba(255, 255, 255, 0.035); box-shadow: none; }
.training-item.past:hover { transform: none; }

.training-date {
    width: 62px;
    flex: 0 0 62px;
    text-align: center;
    padding: 8px 0;
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--lq-stroke);
    border-radius: 14px;
}

.training-date__day { font-size: 22px; font-weight: 800; line-height: 1.05; letter-spacing: -0.02em; }
.training-date__month { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; color: var(--lq-ink-soft); }

.training-info { flex: 1 1 200px; min-width: 180px; }
.training-info__title { font-weight: 700; font-size: 17px; letter-spacing: -0.01em; }
.training-info__hours { color: var(--lq-ink-soft); font-size: 13.5px; }
.training-info__note { font-size: 12.5px; color: var(--lq-ink-faint); margin-top: 4px; }

.training-actions { flex: 0 0 auto; margin-left: auto; text-align: right; }

.training-status {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 6px 14px;
    border-radius: var(--lq-radius-pill);
    font-weight: 700;
    font-size: 13px;
    box-shadow: none;
}

.training-status--present { background: rgba(52, 199, 89, 0.18); border: 1px solid rgba(52, 199, 89, 0.38); color: #7ce49a; }
.training-status--absent  { background: rgba(255, 69, 58, 0.16); border: 1px solid rgba(255, 69, 58, 0.38); color: #ff8f87; }

@media (max-width: 520px) {
    .training-actions { margin-left: 0; width: 100%; text-align: left; }
}

/* ---------- Utility del tema ------------------------------------------ */

.lq-page-head {
    max-width: 1280px;
    margin: 20px auto 22px;
    padding: 0 6px;
}

.lq-page-head h1, .lq-page-head h2 { margin: 0 0 4px; }
.lq-page-head p { color: var(--lq-ink-soft); margin: 0; }

.lq-hero-logo { display: block; margin: 0 auto 22px; max-width: 260px; width: 60%; height: auto; }

.lq-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 10px;
    min-height: 230px;
}

.lq-tile .glyphicon, .lq-tile .fas, .lq-tile .fa {
    font-size: 46px;
    line-height: 1;
    color: var(--lq-primary);
    background: var(--lq-primary-dim);
    border-radius: 22px;
    padding: 20px;
    margin-bottom: 4px;
}

.lq-muted { color: var(--lq-ink-soft); }

.green { color: var(--lq-success) !important; }
.red { color: var(--lq-danger) !important; }
.blue { color: var(--lq-info) !important; }
.text-primary { color: var(--lq-primary) !important; }
.text-success { color: var(--lq-success) !important; }
.text-danger { color: var(--lq-danger) !important; }
.text-warning { color: var(--lq-warning) !important; }
.text-info { color: var(--lq-info) !important; }

/* ---------- Accessibilità / fallback ---------------------------------- */

@media (prefers-reduced-motion: reduce) {
    * { transition: none !important; animation: none !important; }
    .thumbnail:hover, .btn:hover, .radio-item:hover, .training-item:hover { transform: none; }
}

/* Browser senza backdrop-filter: superfici piene (il tema e' gia' opaco,
   serve solo a togliere la trasparenza di navbar e dropdown) */
@supports not ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) {
    .dropdown-menu { background: #262626; }
}

@media (max-width: 767px) {
    body { font-size: 14.5px; }
    .panel, .well, .card, .jumbotron { padding: 18px; border-radius: 16px; }
    h1, .h1 { font-size: 26px; }
    h2, .h2 { font-size: 22px; }
    .btn-lg { padding: 12px 22px; font-size: 16px; }
}

/* ---------- Header dell'area riservata (shared/menu.php) --------------- */

.lq-navbar .navbar-header { display: flex; align-items: center; }

.navbar-default .navbar-brand.lq-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 10px 10px 20px;
    height: auto;
}

.lq-brand__logo {
    height: 30px;
    width: auto;
    display: block;
}

/* i loghi ufficiali sono in nero: su fondo scuro vanno invertiti, la
   hue-rotate riporta l'arancione del segno grafico al colore originale */
.lq-logo,
.lq-brand__logo,
img[src*="logo_shotfive"] {
    filter: invert(1) hue-rotate(180deg);
}

.lq-brand__label {
    font-size: 15px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--lq-ink-soft);
    border-left: 1px solid var(--lq-stroke-strong);
    padding-left: 12px;
}

.lq-user { display: flex; align-items: center; }

.lq-user__chip {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin: 8px 8px 8px 0;
    padding: 6px 14px 6px 6px;
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius-pill);
}

.lq-user__avatar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--lq-primary);
    color: #1a1005;
    font-weight: 800;
    font-size: 13px;
}

.lq-user__name {
    font-weight: 600;
    font-size: 13.5px;
    color: var(--lq-ink);
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.lq-backbar { padding-top: 0; padding-bottom: 0; margin-bottom: 14px; }

@media (max-width: 767px) {
    .lq-brand__label { display: none; }
    .navbar-default .navbar-brand.lq-brand { padding-left: 16px; }
    .lq-user__chip { margin-left: 10px; }
}

/* ---------- Tiles della home ------------------------------------------ */

/* colonne ad altezza uguale: sotto il breakpoint sm le col-sm-* non hanno
   larghezza, quindi come flex-item andrebbero in riga senza andare a capo */
.lq-tiles { display: flex; flex-wrap: wrap; }
.lq-tiles > [class*="col-"] { display: flex; float: none; }
.lq-tiles .thumbnail { width: 100%; }

@media (max-width: 767px) {
    .lq-tiles > [class*="col-"] { width: 100%; }
}

.lq-tile { padding: 26px 20px; }

.lq-tile .glyphicon {
    font-size: 34px;
    width: 78px;
    height: 78px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    top: 0;
}

.lq-tile .glyphicon.lq-tile__icon--green {
    color: var(--lq-success);
    background: rgba(52, 199, 89, 0.16);
}

.lq-tile__title {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--lq-ink);
}

.lq-tile__meta {
    color: var(--lq-ink-soft);
    font-size: 13.5px;
    min-height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

.lq-tile .btn { margin-top: auto; }

/* ---------- Card dell'elenco corsi ------------------------------------ */

.lq-course-card .caption h4 { color: var(--lq-ink) !important; display: flex; align-items: center; gap: 9px; }
.lq-course-card .caption h4 .fas { color: var(--lq-primary); }

.lq-course-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 16px;
}

.lq-stat {
    flex: 1 1 45%;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--lq-stroke);
    border-radius: 14px;
    padding: 10px 12px;
}

.lq-stat__value { font-size: 21px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.1; }
.lq-stat__label { font-size: 11.5px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--lq-ink-soft); font-weight: 700; }

.lq-actions { display: flex; flex-direction: column; gap: 9px; }
.lq-actions .btn { margin-left: 0; width: 100%; }

.lq-check {
    display: flex;
    align-items: center;
    gap: 9px;
    font-weight: 500;
    font-size: 13.5px;
    color: var(--lq-ink-soft);
    margin: 4px 0 6px;
    cursor: pointer;
}

.lq-check input { margin: 0; }

/* ---------- Card squadre ---------------------------------------------- */

.lq-team-card__head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}

.lq-team-card__head h3 { margin: 0; flex: 1; font-size: 20px; }
.lq-team-card__head .form-control { flex: 1; }
.lq-team-card__head .btn { flex: 0 0 auto; margin-left: 0; }

.lq-meta-list {
    list-style: none;
    padding: 0;
    margin: 0 0 16px;
}

.lq-meta-list li {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid var(--lq-stroke-dim);
}

.lq-meta-list li:last-child { border-bottom: 0; }
.lq-meta-list span { color: var(--lq-ink-soft); font-size: 12px; text-transform: uppercase; letter-spacing: 0.05em; font-weight: 700; }
.lq-meta-list strong { text-align: right; color: var(--lq-ink); }

/* checkbox/radio con label a fianco (consensi privacy, opzioni inline) */
input[type="checkbox"] + label,
input[type="radio"] + label,
.checkbox label,
.radio label {
    display: inline;
    font-weight: 500;
    font-size: 13.5px;
    text-transform: none;
    letter-spacing: 0;
    color: var(--lq-ink-soft);
    margin-left: 7px;
}

/* ---------- Layout legacy: .page-header + .main > form ----------------- */

.page-header {
    border-bottom: 0;
    padding-bottom: 0;
    margin: 4px 0 20px;
}

.page-header h1, .page-header h2 { margin: 0 0 4px; }
.page-header small { color: var(--lq-ink-soft); }

.main > form,
.main > .form-horizontal,
.main > .row > [class*="col-"] > form {
    display: block;
    background: var(--lq-surface);
    border: 1px solid var(--lq-stroke);
    border-radius: var(--lq-radius);
    box-shadow: var(--lq-shadow), var(--lq-inner);
    padding: 24px;
    margin-bottom: 22px;
}

.form-horizontal .control-label { padding-top: 12px; }

/* ---------- Ricerca inline (inserisci_giocatore) ----------------------- */

.lq-search {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.lq-search .form-control { flex: 1 1 240px; }
.lq-search .btn { flex: 0 0 auto; margin-left: 0; }

/* ---------- Chip di stato --------------------------------------------- */

.lq-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 14px;
}

.lq-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border-radius: var(--lq-radius-pill);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.01em;
    border: 1px solid transparent;
    white-space: nowrap;
}

.lq-chip--ok    { background: rgba(52, 199, 89, 0.16); border-color: rgba(52, 199, 89, 0.34); color: #7ce49a; }
.lq-chip--ko    { background: rgba(255, 69, 58, 0.15); border-color: rgba(255, 69, 58, 0.34);  color: #ff8f87; }
.lq-chip--warn  { background: rgba(255, 159, 10, 0.16); border-color: rgba(255, 159, 10, 0.34); color: #ffc069; }
.lq-chip--muted { background: rgba(255, 255, 255, 0.07); border-color: var(--lq-stroke-strong); color: var(--lq-ink-soft); }

/* ---------- Card della rosa ------------------------------------------- */

.lq-roster-card { padding: 18px; }

/* Card evidenziata: il giocatore ha un tesseramento da regolarizzare
   (non censito o scaduto) e concorre alla quota complessiva della squadra. */
.thumbnail.lq-roster-card--alert {
    background:
        linear-gradient(180deg, rgba(255, 69, 58, 0.16) 0%, rgba(255, 69, 58, 0.05) 100%),
        var(--lq-surface);
    border-color: rgba(255, 69, 58, 0.45);
}

.thumbnail.lq-roster-card--alert:hover {
    background:
        linear-gradient(180deg, rgba(255, 69, 58, 0.22) 0%, rgba(255, 69, 58, 0.08) 100%),
        var(--lq-surface-3);
    border-color: rgba(255, 69, 58, 0.65);
}

.lq-roster-card--alert .lq-avatar {
    background: var(--lq-danger);
    color: #2a0806;
}

.lq-roster-card--alert .lq-roster-card__opts {
    border-top-color: rgba(255, 69, 58, 0.22);
    border-bottom-color: rgba(255, 69, 58, 0.22);
}

/* Invito al pagamento complessivo dei tesseramenti della squadra. */
.lq-roster-card__pay {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding: 12px 14px;
    border: 1px solid rgba(255, 69, 58, 0.34);
    border-radius: var(--lq-radius-sm);
    background: rgba(255, 69, 58, 0.12);
    font-size: 13px;
    line-height: 1.45;
    color: var(--lq-ink);
}

.lq-roster-card__pay > i { color: var(--lq-danger-2); font-size: 15px; }
.lq-roster-card__pay > span { flex: 1 1 180px; min-width: 0; }
.lq-roster-card__pay .btn { flex: 0 0 auto; }

.lq-roster-card__head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 14px;
}

.lq-avatar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--lq-primary);
    color: #1a1005;
    font-weight: 800;
    font-size: 15px;
    letter-spacing: 0.02em;
}

.lq-roster-card__id { min-width: 0; }
.lq-roster-card__name { font-weight: 700; font-size: 17px; letter-spacing: -0.01em; }
.lq-roster-card__mail { font-size: 13px; color: var(--lq-ink-soft); overflow-wrap: anywhere; }

.lq-roster-card__opts {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 0;
    margin-bottom: 12px;
    border-top: 1px solid var(--lq-stroke-dim);
    border-bottom: 1px solid var(--lq-stroke-dim);
}

.lq-field { display: flex; align-items: center; gap: 10px; flex: 1 1 auto; }
.lq-field__label { font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--lq-ink-soft); }
.lq-field .form-control { width: auto; min-width: 130px; min-height: 36px; padding: 6px 12px; }

.lq-switch { display: inline-flex; gap: 4px; }

.lq-radio {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 5px 12px;
    border-radius: var(--lq-radius-pill);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--lq-stroke-strong);
    font-size: 13px;
    font-weight: 600;
    color: var(--lq-ink);
    text-transform: none;
    letter-spacing: 0;
    cursor: pointer;
}

.lq-radio input { margin: 0; width: 15px; height: 15px; }

.lq-actions--inline {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
}

.lq-actions--inline .btn { width: auto; }

/* ---------- Bottone di submit in coda al form -------------------------- */

/* Prima erano `float: right` inline: essendo l'ultimo figlio del form,
   il float li faceva uscire dal box (il form non ne calcolava l'altezza).
   Ora sono allineati a destra restando nel flusso. */
.lq-submit {
    display: block;
    margin: 18px 0 0 auto;
}

/* rete di sicurezza per eventuali altri float non chiusi: flow-root crea un
   BFC che contiene i figli flottanti. */
.main > form,
.main > .form-horizontal,
.main > .row > [class*="col-"] > form,
.well {
    display: flow-root;
}

/* ---------- Preferenze orari (preferenza.php) -------------------------- */

.lq-steps {
    margin: 0 0 18px;
    padding-left: 20px;
    color: var(--lq-ink);
}

.lq-steps li { margin-bottom: 7px; }

.lq-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 14px;
    border-top: 1px solid var(--lq-stroke-dim);
}

.lq-legend__item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 13px;
    border-radius: var(--lq-radius-pill);
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid var(--lq-stroke-strong);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--lq-ink);
    white-space: nowrap;
}

/* riproduce l'aspetto dell'evento selezionato nel calendario: riquadro verde
   con il bordo colorato che indica la posizione in classifica */
.lq-legend__dot {
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 3px solid;
    background: #61c14a;
    flex: 0 0 auto;
}

.lq-page-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin: 4px 0 30px;
}

.lq-page-actions .btn { margin-left: 0; }

.lq-pref-list {
    list-style: none;
    counter-reset: pref;
    margin: 0;
    padding: 0;
}

.lq-pref-list li {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 0;
    border-bottom: 1px solid var(--lq-stroke-dim);
}

.lq-pref-list li:last-child { border-bottom: 0; }

.lq-pref__rank {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--lq-ink-faint);
    color: #fff;
    font-weight: 800;
    font-size: 13px;
}

/* stessi colori usati dal calendario per il bordo dell'evento selezionato */
.lq-pref-list li:nth-child(1) .lq-pref__rank { background: #0000A0; }
.lq-pref-list li:nth-child(2) .lq-pref__rank { background: #0000FF; }
.lq-pref-list li:nth-child(3) .lq-pref__rank { background: #808080; }
.lq-pref-list li:nth-child(4) .lq-pref__rank { background: #800000; }
.lq-pref-list li:nth-child(5) .lq-pref__rank { background: #FFA500; color: #2b1a00; }

.lq-pref__label { font-weight: 600; }

/* ---------- FullCalendar 1.6 ------------------------------------------ */

.lq-calendar-panel { padding: 18px; }

#calendario_squadra { overflow-x: auto; }
#calendario_squadra .fc { min-width: 640px; }

.fc { color: var(--lq-ink); }

.fc-header-title h2 {
    font-size: 19px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--lq-ink);
}

.fc-state-default {
    background: rgba(255, 255, 255, 0.08);
    background-image: none;
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-sm);
    box-shadow: none;
    color: var(--lq-ink);
    text-shadow: none;
    font-weight: 600;
}

.fc-state-hover { background: rgba(255, 255, 255, 0.16); color: var(--lq-ink); }

.fc-state-down,
.fc-state-active {
    background: var(--lq-primary);
    background-image: none;
    border-color: transparent;
    color: #1a1005;
    box-shadow: none;
}

.fc-state-disabled { opacity: 0.4; }

.fc th.fc-widget-header {
    color: var(--lq-ink-soft);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.fc-widget-header,
.fc-widget-content,
.fc-border-separate th,
.fc-border-separate td { border-color: var(--lq-stroke-dim); }

.fc-state-highlight { background: rgba(253, 124, 38, 0.14); }
.fc-agenda-axis { color: var(--lq-ink-soft); font-size: 12px; font-weight: 600; }
.fc-event, .fc-event-inner { border-radius: 8px; }
.fc-event-time { font-weight: 700; }
.fc-agenda-slots td div { border-color: var(--lq-stroke-dim); }
.fc-widget-header .fc-agenda-divider-inner { background: rgba(255, 255, 255, 0.12); }
/* l'overlay bianco che "schiarisce" gli eventi va alleggerito su fondo scuro */
.fc-event-vert .fc-event-bg { opacity: 0.12; }
.fc-cell-overlay { background: var(--lq-primary); opacity: 0.25; }

/* barra azioni appiccicata in fondo: su pagine lunghe (calendario) il tasto
   di salvataggio resta sempre raggiungibile */
.lq-page-actions--sticky {
    position: sticky;
    bottom: 14px;
    z-index: 10;
    padding: 12px 16px;
    background: #1c1c1c;
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-pill);
    box-shadow: var(--lq-shadow-lift);
    align-items: center;
}

.lq-page-actions--sticky .lq-page-actions__hint {
    margin-right: auto;
    font-size: 13px;
    color: var(--lq-ink-soft);
}

@media (max-width: 575px) {
    .lq-page-actions--sticky { border-radius: var(--lq-radius); flex-wrap: wrap; }
    .lq-page-actions--sticky .btn { width: 100%; }
}

/* ---------- Banner "prossimo allenamento" ------------------------------ */

.lq-next {
    position: relative;
    overflow: hidden;
    margin-bottom: 22px;
    padding: 16px 18px 18px;
    border: 1px solid var(--lq-primary-line);
    border-radius: var(--lq-radius);
    background:
        linear-gradient(140deg, rgba(253, 124, 38, 0.14), rgba(253, 124, 38, 0.03)),
        var(--lq-surface);
    box-shadow: var(--lq-shadow);
}

.lq-next__label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 14px;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--lq-primary);
}

.lq-next__when {
    margin-left: auto;
    padding: 4px 12px;
    border-radius: var(--lq-radius-pill);
    background: rgba(0, 0, 0, 0.35);
    border: 1px solid var(--lq-stroke-strong);
    color: var(--lq-ink);
    letter-spacing: 0.02em;
    text-transform: none;
    font-size: 12px;
}

.lq-next__body {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.lq-next__info { flex: 1 1 220px; min-width: 190px; }
.lq-next__title { font-size: 21px; font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; }
.lq-next__hours { color: var(--lq-ink-soft); font-weight: 600; }
.lq-next__note { margin-top: 6px; font-size: 12.5px; color: var(--lq-ink-soft); }

.lq-next__actions {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 10px;
    margin-left: auto;
}

.lq-next__buttons { display: flex; flex-wrap: wrap; gap: 8px; }
.lq-next__buttons .btn { margin-left: 0; }

.lq-next .training-date {
    width: 72px;
    flex: 0 0 72px;
    background: rgba(0, 0, 0, 0.35);
}

.lq-next .training-date__day { font-size: 26px; }

@media (max-width: 575px) {
    .lq-next__actions { align-items: stretch; margin-left: 0; width: 100%; }
    .lq-next__buttons .btn { flex: 1 1 0; }
    .lq-next .training-status { justify-content: center; }
    /* su schermo stretto il badge va a capo tutto intero invece di spezzarsi */
    .lq-next__label { flex-wrap: wrap; }
    .lq-next__when { margin-left: 0; white-space: nowrap; }
}

/* evidenzia in lista l'allenamento mostrato nel banner */
.training-item.is-next {
    border-color: var(--lq-primary-line);
    box-shadow: 0 0 0 3px rgba(253, 124, 38, 0.12), var(--lq-shadow);
}

.lq-tag {
    display: inline-block;
    margin-left: 8px;
    padding: 2px 9px;
    border-radius: var(--lq-radius-pill);
    background: var(--lq-primary-dim);
    border: 1px solid var(--lq-primary-line);
    color: var(--lq-primary);
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    vertical-align: 2px;
}

.lq-section-title {
    margin: 26px 0 12px;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: 0.02em;
    color: var(--lq-ink-soft);
}

/* ---------- Select2 3.5 (iscrizione torneo, inserisci giocatore) ------- */

.select2-container .select2-choice,
.select2-container-multi .select2-choices {
    background: var(--lq-surface-2) !important;
    background-image: none !important;
    border: 1px solid var(--lq-stroke-strong) !important;
    border-radius: var(--lq-radius-sm) !important;
    box-shadow: none !important;
    color: var(--lq-ink) !important;
    min-height: 44px;
    line-height: 42px;
    filter: none;
}

.select2-container .select2-choice > .select2-chosen { color: var(--lq-ink); margin-right: 30px; }
.select2-container .select2-choice .select2-arrow {
    background: transparent !important;
    background-image: none !important;
    border-left: 1px solid var(--lq-stroke) !important;
    border-radius: 0 !important;
}
.select2-container .select2-choice .select2-arrow b { filter: invert(1) opacity(0.55); }
.select2-container.select2-container-active .select2-choice,
.select2-container.select2-container-active .select2-choices {
    border-color: var(--lq-primary-line) !important;
    box-shadow: 0 0 0 3px rgba(253, 124, 38, 0.18) !important;
}
.select2-container .select2-choice abbr { filter: invert(1) opacity(0.6); }
.select2-container.select2-container-disabled .select2-choice { background: rgba(255, 255, 255, 0.04) !important; }

.select2-drop, .select2-drop-active {
    background: #262626;
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-sm);
    box-shadow: var(--lq-shadow-lift);
    color: var(--lq-ink);
}

.select2-drop.select2-drop-above { border-radius: var(--lq-radius-sm); }

.select2-search input {
    background: var(--lq-surface-2) !important;
    border: 1px solid var(--lq-stroke-strong);
    border-radius: 10px;
    color: var(--lq-ink);
}

.select2-results { background: transparent; color: var(--lq-ink); padding: 4px; margin: 0; }
.select2-results li { background: transparent; }
.select2-results .select2-result-label { padding: 9px 12px; border-radius: 9px; }
.select2-results .select2-highlighted { background: var(--lq-primary-dim); color: var(--lq-primary); }
.select2-results .select2-no-results,
.select2-results .select2-searching,
.select2-results .select2-selection-limit { background: transparent; color: var(--lq-ink-soft); }
.select2-container-multi .select2-choices .select2-search-choice {
    background: var(--lq-surface-3);
    background-image: none;
    border: 1px solid var(--lq-stroke-strong);
    border-radius: var(--lq-radius-pill);
    box-shadow: none;
    color: var(--lq-ink);
    padding: 4px 8px 4px 22px;
}
.select2-container-multi .select2-choices .select2-search-field input { color: var(--lq-ink); background: transparent; }

/* ---------- ng-table (tabellone torneo) -------------------------------- */

.ng-table th, .ng-table-pager, .ng-table-counts .btn { color: var(--lq-ink); }
.ng-table th.sortable .sort-indicator { color: var(--lq-ink-soft); }
.ng-table-pagination > li > a { background: var(--lq-surface); border-color: var(--lq-stroke-strong); color: var(--lq-ink); }
