/* GESTIONALE PHIL — Identità FP (anteprima visuale, non pubblicata)
   Non modifica database, HTML forms, calcoli o autorizzazioni. */
:root {
  --bg:#f2f7f8;--surface:#fff;--nav:#072b3a;--nav2:#0b4650;
  --ink:#142f3b;--muted:#5e7480;--border:#dbe8eb;--line:#dbe8eb;
  --teal:#007f76;--soft:#e7f8f3;--shadow:0 9px 26px rgba(6,42,56,.055);
  --phil-aqua:#0fe0b8;--phil-deep:#072b3a;--phil-border:#dbe8eb;
}
body {background:#f2f7f8;color:#142f3b}
.side {background:linear-gradient(165deg,#062838 0%,#073848 60%,#084448 100%);color:#d2e3e7;border-right:1px solid #1d5761}
.side::after {content:"";height:2px;display:block;background:linear-gradient(90deg,transparent,#19cba5,transparent);margin:22px 11px 0;opacity:.45}
.brand {gap:10px;margin:4px 2px 36px;align-items:center}
.brand .fp-mark {width:50px;height:50px;flex:0 0 50px;object-fit:cover;border-radius:14px;border:1px solid rgba(68,224,195,.30);box-shadow:0 4px 14px rgba(0,0,0,.15)}
.brand .brand-copy {min-width:0}
.brand strong {font-weight:800;color:#fff;font-size:15px;line-height:1.15;letter-spacing:-.025em;white-space:nowrap}
.brand small {color:#e5f5f5!important;font-size:10px!important;line-height:1.35;letter-spacing:.003em;margin-top:5px;white-space:normal}
.brand small em {font-style:normal;color:#a2cccf;font-weight:500}
.sidefoot {color:#a5c0c4!important;font-size:12px;line-height:1.6}
.navbtn,.navlink {font-weight:590;transition:background-color .15s ease,color .15s ease;}
.navbtn:hover,.navlink:hover {background:rgba(31,213,177,.12)!important;color:#fff!important}
.navbtn.active,.navlink.active {background:linear-gradient(105deg,#087b72,#07695f)!important;color:#fff!important;box-shadow:inset 3px 0 #23e4b9,0 6px 12px rgba(0,0,0,.08)}
.navbtn.active .dot {color:#cbfff2}
main {background:transparent}
.top {border-bottom:1px solid #e2ecee;padding-bottom:20px}
.top h1 {color:#14323f;letter-spacing:-.045em}
.eyebrow {color:#037f73!important}
.btn,.btn.primary,button {transition:background-color .15s ease,border-color .15s ease,box-shadow .15s ease}
.btn {border-radius:11px}
.btn.primary {background:#078477!important;border-color:#078477!important;color:#fff!important;box-shadow:0 3px 8px rgba(5,118,104,.10)}
.btn.primary:hover {background:#03695f!important;border-color:#03695f!important}
:where(input,select,textarea):focus {border-color:#0a9988!important;box-shadow:0 0 0 3px rgba(18,197,165,.12)}
:where(button,a,input,select,textarea):focus-visible {outline:3px solid #3bd7b4;outline-offset:2px}
.stat,.metric,.kpi,.stats-card,.filter-card,.tablebox,.card,.panel {border-color:#dbe8eb!important;box-shadow:0 5px 18px rgba(10,55,68,.045)}
.stat,.metric,.kpi {border-radius:16px}
.stat .value,.metric strong,.kpi strong {color:#0b3744}
.metrics,.stats,.kpi-grid {gap:14px}
.totalsheet,.kpi.accent {background:linear-gradient(120deg,#e6f8f2,#effaf7)!important;border-color:#b4e5d3!important}
.segmentpick label:has(input:checked),.quickselect label:has(input:checked) {background:#e8f9f3!important;border-color:#14a38b!important}
.track span,.chart-bar div {background:linear-gradient(90deg,#007f76,#1bcda7)!important}
.notice {border-color:#eee1b6!important;background:#fffaf0!important}
.dialog,.loginpanel,.login {border-radius:22px!important;box-shadow:0 22px 70px rgba(8,35,49,.18)!important}
.gate {background:radial-gradient(circle at 82% 14%,#145969 0%,transparent 36%),linear-gradient(138deg,#052333,#074050 85%)!important}
.login,.loginpanel {max-width:490px!important;border:1px solid rgba(10,80,87,.13)}
.login-brand {background:#062c3e;display:grid;place-items:center;border-radius:14px;margin:0 0 20px;min-height:112px;padding:16px;overflow:hidden}
.login-brand img {width:100%;height:auto;max-height:145px;object-fit:contain;display:block}
.loginpanel h1,.login h1 {letter-spacing:-.04em;color:#123442}
.loginpanel .eyebrow,.login .eyebrow {letter-spacing:.11em}
.loginpanel form label,.login label {color:#284450}
#gate .primary {width:100%}
.pill,.pill-cloud {border-color:#b4ded0!important;background:#e6f6ef!important;color:#067363!important}
.summary,.filters {border-color:#e2edef}
.formfooter {background:#fff}
/* Do not introduce nonfunctional nav items: only existing sections are linked. */
@media (max-width:1000px) {
  .brand {margin-left:0;margin-right:0}
  .brand .fp-mark {width:42px;height:42px;flex-basis:42px}
  .brand strong {font-size:13px}
  .brand small {font-size:9px!important}
}
@media (max-width:740px) {
  .side {border-right:0;border-bottom:1px solid #156678}
  .brand {margin-bottom:15px}
  .top {padding-bottom:16px}
  .login-brand {min-height:82px;padding:12px}
}
@media (prefers-reduced-motion:reduce) {
  .btn,.navlink,.navbtn,button {transition:none!important}
}
@media(max-width:740px) {
  .side nav {display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible!important}
  .side .navbtn,.side .navlink {width:100%!important;min-width:0!important;min-height:42px;display:flex!important;align-items:center;justify-content:flex-start;white-space:normal!important;margin:0!important;padding:9px 10px!important;font-size:12px!important;line-height:1.25}
}

/* Correzione mirata: centrare il sottotitolo rispetto al nome nella testata mobile. */
@media (max-width:740px) {
  .side .brand .brand-copy {
    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;
    width:max-content;
    max-width:calc(100vw - 88px);
  }
  .side .brand .brand-copy strong,
  .side .brand .brand-copy small {
    display:block;
    width:100%;
    text-align:center;
  }
}

.owner-gare-link[hidden]{display:none!important}

.owner-settings-link[hidden],.owner-gare-link[hidden]{display:none!important}

/* I moduli con permessi non devono comparire prima del controllo account. */
[hidden] {display:none !important;}

/* Login mostrato solo dopo la verifica dell'accesso. */
.auth-loading{min-height:100vh;display:grid;place-items:center;padding:24px;text-align:center;
background:linear-gradient(145deg,#092d3a,#155063);color:#fff;font-family:inherit}
.auth-loading strong{font-size:24px;letter-spacing:-.025em}
.auth-loading p{font-size:14px;color:#bddbdc;margin:12px 0 0}
.auth-loading[hidden]{display:none!important}
