:root{--blue:#064b93;--blue-dark:#073b73;--blue-deep:#092d57;--blue-soft:#eaf3fc;--yellow:#ffd617;--ink:#1c2735;--muted:#5e6b7b;--line:#cbd4df;--line-soft:#e4e9ef;--surface:#fff;--soft:#f4f7fa;--soft-2:#edf1f5;--ok:#147a4b;--ok-soft:#e3f5eb;--danger:#b42318;--danger-soft:#fde9e7;--warning:#865800;--warning-soft:#fff2cc;--info:#075fa8;--info-soft:#e6f2fc;--radius:4px;--radius-lg:8px;--shadow:0 1px 3px rgba(25,39,58,.12);--shadow-lg:0 10px 28px rgba(25,39,58,.09)}
*{box-sizing:border-box}html{min-width:320px;scroll-behavior:smooth}body{margin:0;background:var(--soft);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}img,svg{max-width:100%}a{color:var(--blue);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}h1,h2,h3{margin-top:0;color:#132238;line-height:1.2}h1{font-size:clamp(1.85rem,3vw,2.45rem)}h2{font-size:1.35rem}p{margin-top:0}button,input,select,textarea{font:inherit}.container{width:min(1240px,calc(100% - 36px));margin-inline:auto}.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:2000;padding:10px 14px;border:3px solid var(--yellow);background:#fff;color:var(--blue)}
.mast{border-top:6px solid var(--yellow);background:linear-gradient(115deg,var(--blue),var(--blue-dark));color:#fff}.mast-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 0}.identity{min-width:0}.eyebrow{display:block;margin-bottom:2px;font-size:.78rem;letter-spacing:.055em;text-transform:uppercase}.brand{display:inline-block;color:#fff;font-size:1.72rem;font-weight:700;text-decoration:none}.user-area{display:flex;align-items:center;gap:10px}.user-area form{margin:0}.user-badge{display:grid;width:34px;height:34px;place-items:center;border:1px solid rgba(255,255,255,.42);border-radius:50%;background:rgba(255,255,255,.12);font-weight:700}.linkbtn{padding:4px;border:0;background:none;color:#fff;cursor:pointer;text-decoration:underline}.nav{background:var(--blue-deep);box-shadow:0 1px 0 rgba(255,255,255,.1) inset}.nav-inner{position:relative}.nav-links{display:flex;flex-wrap:wrap}.nav-links a{display:block;padding:13px 15px;border-bottom:4px solid transparent;color:#fff;font-weight:700;text-decoration:none}.nav-links a:hover,.nav-links a:focus-visible{background:#113e69}.nav-links a[aria-current=page]{border-bottom-color:var(--yellow);background:#113e69}.nav-toggle{display:none;width:100%;padding:12px;border:0;background:transparent;color:#fff;font-weight:700;text-align:left;cursor:pointer}
.main{min-height:72vh;padding:22px 0 56px}.breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;color:var(--muted);font-size:.9rem}.page-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;margin-bottom:24px;padding:26px 28px;border:1px solid #d7e1eb;border-left:6px solid var(--blue);border-radius:var(--radius-lg);background:linear-gradient(120deg,#fff,#f0f6fc);box-shadow:var(--shadow)}.page-hero>div:first-child{min-width:0}.page-hero h1{margin-bottom:8px}.page-hero p:last-child{margin-bottom:0}.section-kicker{margin:0 0 5px;color:var(--blue);font-size:.76rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.btn{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:9px 16px;border:2px solid var(--blue);border-radius:var(--radius);background:var(--blue);color:#fff;cursor:pointer;font-weight:700;line-height:1.2;text-align:center;text-decoration:none}.btn:hover{border-color:var(--blue-dark);background:var(--blue-dark)}.btn.secondary{background:#fff;color:var(--blue)}.btn.secondary:hover{background:var(--blue-soft)}.btn.tertiary{min-height:40px;padding:7px 12px;border-color:var(--line);background:#fff;color:var(--blue)}.btn.tertiary:hover{border-color:var(--blue);background:var(--blue-soft)}.btn:focus-visible,.linkbtn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--yellow);outline-offset:2px}
.notice{margin-bottom:18px;padding:14px 16px;border:1px solid #bad3ea;border-left:5px solid var(--info);border-radius:var(--radius);background:var(--info-soft)}.notice.success{border-color:#b8dfca;border-left-color:var(--ok);background:var(--ok-soft)}.notice.error{border-color:#efc0bc;border-left-color:var(--danger);background:var(--danger-soft)}.notice.warning{border-color:#efd78e;border-left-color:var(--warning);background:var(--warning-soft)}.notice.info{border-left-color:var(--info)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 24px}.metric-grid.compact{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.metric-card{display:flex;min-height:145px;flex-direction:column;justify-content:center;padding:20px;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:var(--radius-lg);background:#fff;color:var(--ink);box-shadow:var(--shadow);text-decoration:none;transition:transform .15s,box-shadow .15s}.metric-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.metric-card.static:hover{transform:none;box-shadow:var(--shadow)}.metric-card.warning{border-top-color:var(--warning)}.metric-value{display:block;color:var(--blue);font-size:2.35rem;font-weight:700;line-height:1.05}.metric-link{margin-top:12px;color:var(--blue);font-size:.88rem;font-weight:700}.dashboard-grid,.content-grid,.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.aside-layout{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}.panel{min-width:0;margin-bottom:20px;padding:22px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.panel-heading h2{margin-bottom:0}.panel-heading p:last-child{margin-bottom:0}.list-group{border-top:1px solid var(--line-soft)}.list-item{display:flex;align-items:center;gap:14px;padding:14px 4px;border-bottom:1px solid var(--line-soft);color:var(--ink);text-decoration:none}.list-item:hover{background:#f8fbfe}.list-item.simple{justify-content:space-between}.list-item small{display:block;margin-top:3px;color:var(--muted)}.date-tile{display:grid;min-width:52px;place-items:center;padding:6px;border:1px solid #c8d9ea;border-radius:var(--radius);background:var(--blue-soft);color:var(--blue);font-size:.72rem;font-weight:700}.date-tile strong{font-size:1.45rem;line-height:1}
.empty-state{padding:36px 20px;text-align:center}.empty-state h2{margin-bottom:7px}.empty-state p{max-width:540px;margin:0 auto 18px;color:var(--muted)}.empty-icon{display:grid;width:54px;height:54px;margin:0 auto 14px;place-items:center;border:2px solid var(--line);border-radius:50%;color:var(--blue);font-size:2rem}.toolbar,.selection-toolbar{display:flex;align-items:flex-end;gap:10px;margin-bottom:18px;padding:14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.search-field{flex:1}.selection-toolbar input[type=search]{min-width:220px;flex:1}.selection-count{margin-left:auto;color:var(--muted);font-weight:700}
form{min-width:0}.form-shell{display:grid;gap:20px}.form-section{padding:24px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.form-section-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}.form-section-heading>span{display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-weight:700}.form-section-heading h2{margin-bottom:4px}.form-section-heading p{margin-bottom:0;color:var(--muted)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{min-width:0}.field.full{grid-column:1/-1}.field>label{display:block;margin-bottom:6px;font-weight:700}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea,.selection-toolbar input[type=search],table input:not([type=checkbox]):not([type=radio]),table select,table textarea{width:100%;min-height:44px;padding:9px 10px;border:2px solid #7d8998;border-radius:3px;background:#fff;color:var(--ink)}.field textarea{min-height:105px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus,.selection-toolbar input:focus,table input:focus,table select:focus,table textarea:focus{outline:3px solid var(--yellow);outline-offset:1px;border-color:var(--blue)}.field small,.hint,small{display:block;color:var(--muted);font-size:.84rem}.field small{margin-top:5px}input[type=checkbox],input[type=radio]{width:1.18rem;height:1.18rem;margin:0 .45rem 0 0;vertical-align:-.18rem;accent-color:var(--blue)}.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.choice-card{min-width:0;border:1px solid var(--line);border-radius:var(--radius);background:#fafcfe}.choice-card label{display:flex;align-items:flex-start;gap:8px;padding:14px;cursor:pointer}.choice-card label:hover{background:var(--blue-soft)}.choice-card strong,.choice-card small{display:block}.choice-card input{margin-top:3px}.checkbox-label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}.checkbox-label strong,.checkbox-label small{display:block}.compact-choice{display:inline-flex;align-items:center;white-space:nowrap}.sticky-actions{position:sticky;z-index:20;bottom:0;display:flex;gap:10px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:rgba(255,255,255,.96);box-shadow:0 -6px 18px rgba(25,39,58,.09);backdrop-filter:blur(8px)}
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}.person-card{display:flex;align-items:flex-start;gap:10px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;cursor:pointer}.person-card:hover{border-color:var(--blue);background:var(--blue-soft)}.person-card>span:nth-child(2){min-width:0;flex:1}.person-card strong,.person-card small{display:block}.person-card.inactive{background:#f5f6f8;color:var(--muted)}
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}.table-wrap.flush{border:0;border-radius:0;box-shadow:none}.table-wrap table{width:100%;border-collapse:collapse}.table-wrap th,.table-wrap td{padding:12px 13px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}.table-wrap th{background:#eef3f8;color:#26364b;font-size:.9rem;white-space:nowrap}.table-wrap tbody tr:last-child td{border-bottom:0}.table-wrap tbody tr:hover{background:#f9fbfd}.table-wrap td strong+small{margin-top:3px}.table-wrap a{white-space:nowrap}.actions-col{width:1%}.table-action{font-weight:700}.status{display:inline-block;padding:4px 8px;border-radius:999px;background:#e8edf3;color:#4e5b6b;font-size:.78rem;font-weight:700;white-space:nowrap}.status.ok{background:var(--ok-soft);color:#0d6139}.status.fail{background:var(--danger-soft);color:#8e1a12}.status.warn{background:var(--warning-soft);color:#704800}.status.info{background:var(--info-soft);color:#075b9e}.status.muted{background:#e9edf1;color:#596575}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem}code{overflow-wrap:anywhere}pre{max-width:100%;overflow:auto;padding:13px;border:1px solid var(--line);border-radius:var(--radius);background:#f6f8fa;white-space:pre-wrap}details summary{cursor:pointer;color:var(--blue);font-weight:700}
.participant-wrap{max-height:68vh}.participant-table{min-width:1180px}.participant-table th{position:sticky;z-index:3;top:0}.participant-table .sticky-col{position:sticky;z-index:4;background:#fff}.participant-table th.sticky-col{z-index:6;background:#eef3f8}.participant-table .select-col{left:0;width:72px;text-align:center}.participant-table .name-col{left:72px;min-width:245px;border-right:1px solid var(--line)}.participant-table input[type=number]{min-width:82px}.participant-table .notes-input{min-width:190px}.participant-row.disabled{opacity:.5;background:#f4f5f7}.participant-row[hidden],.person-card[hidden]{display:none}.participant-row input:disabled{background:#e8ebef;color:#697583}.report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.report-card{padding:20px;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.report-card h2{margin:14px 0 6px}.report-card-head,.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.report-card-head{color:var(--muted);font-size:.88rem}.report-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:18px 0;padding:12px 0;border-block:1px solid var(--line-soft);font-size:.82rem}.report-stats strong{display:block;color:var(--blue);font-size:1.35rem}
.definition-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;margin:0}.definition-grid.single{grid-template-columns:1fr}.definition-grid>div{padding:12px 0;border-bottom:1px solid var(--line-soft)}.definition-grid .full{grid-column:1/-1}.definition-grid dt{color:var(--muted);font-size:.82rem;font-weight:700;text-transform:uppercase}.definition-grid dd{margin:4px 0 0}.upload-box{display:grid;gap:16px}.file-drop{display:grid;min-height:220px;place-items:center;padding:28px;border:2px dashed #7898b9;border-radius:var(--radius-lg);background:#f7fbff;color:var(--muted);cursor:pointer;text-align:center}.file-drop:hover{border-color:var(--blue);background:var(--blue-soft)}.file-drop input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.file-drop strong{color:var(--blue);font-size:1.1rem}.file-drop-icon{display:grid;width:52px;height:52px;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-size:1.8rem}.steps{margin:0;padding:0;list-style:none}.steps li{display:flex;gap:12px;margin-bottom:15px}.steps li>span{display:grid;width:30px;height:30px;flex:0 0 30px;place-items:center;border-radius:50%;background:var(--blue);color:#fff;font-weight:700}.steps p{margin:2px 0 0;color:var(--muted);font-size:.9rem}.tag-list{display:flex;flex-wrap:wrap;gap:7px}.tag-list span{padding:5px 9px;border:1px solid #bfd2e6;border-radius:999px;background:var(--blue-soft);color:var(--blue);font-size:.8rem}.confirmation-bar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px;border:1px solid #b8cde1;border-radius:var(--radius-lg);background:#f5faff;box-shadow:var(--shadow)}.login-shell{display:grid;min-height:62vh;place-items:center}.login-panel{width:min(520px,100%);padding:34px;border:1px solid var(--line);border-top:6px solid var(--blue);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-lg)}.stack{display:grid;gap:17px}.footer-grid{display:flex;justify-content:space-between;gap:24px}footer{padding:26px 0;border-top:1px solid var(--line);background:var(--soft-2);color:#3f4b59}footer p:last-child{margin-bottom:0}
@media(max-width:980px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-grid,.content-grid,.settings-grid,.aside-layout{grid-template-columns:1fr}.page-hero{align-items:stretch}.participant-wrap{max-height:none}}
@media(max-width:760px){.container{width:min(100% - 20px,1240px)}.mast-inner{align-items:flex-start}.user-area>span:not(.user-badge){display:none}.nav-toggle{display:block}.nav-links{display:none}.nav-links.open{display:block}.nav-links a{border-bottom:0;border-left:4px solid transparent}.nav-links a[aria-current=page]{border-left-color:var(--yellow)}.main{padding-top:16px}.page-hero{display:block;padding:20px}.page-hero .actions{margin-top:16px}.form-grid{grid-template-columns:1fr}.field.full{grid-column:auto}.metric-grid{grid-template-columns:1fr 1fr}.toolbar,.selection-toolbar,.confirmation-bar,.footer-grid{align-items:stretch;flex-direction:column}.toolbar .btn,.selection-toolbar .btn,.confirmation-bar .btn,.sticky-actions .btn{width:100%}.sticky-actions{position:static;flex-direction:column}.selection-count{margin-left:0}.report-stats{grid-template-columns:1fr}.definition-grid{grid-template-columns:1fr}.definition-grid .full{grid-column:auto}.panel,.form-section{padding:16px}.participant-section{padding-inline:10px}.participant-wrap{border-radius:4px}.table-wrap:not(.participant-wrap) table{min-width:760px}.login-panel{padding:24px}}
@media(max-width:430px){.brand{font-size:1.4rem}.eyebrow{font-size:.68rem}.metric-grid{grid-template-columns:1fr}.page-hero h1{font-size:1.7rem}.form-section-heading>span{display:none}.report-grid{grid-template-columns:1fr}}
@media print{body{background:#fff}.skip,.nav,.user-area,.actions,.sticky-actions,footer,.selection-toolbar{display:none!important}.mast{border:0;background:#fff;color:var(--ink)}.brand{color:var(--ink)}.main{padding:0}.page-hero,.panel,.form-section,.table-wrap,.metric-card{box-shadow:none}.table-wrap{overflow:visible}.table-wrap table,.participant-table{min-width:0;font-size:10pt}}
.text-error{color:var(--danger)!important;font-weight:700}.source-rule{display:grid;gap:4px}.source-rule small{color:var(--muted)}

/* Editor template e messaggi reminder */
.template-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}.template-card{display:flex;min-width:0;flex-direction:column;padding:20px;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.template-card h2{margin:14px 0 6px}.template-card>p{color:var(--muted)}.template-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px;color:var(--muted);font-size:.86rem}.template-card .card-actions{margin-top:auto;padding-top:16px}.message-snippet{max-height:210px;margin:8px 0 15px;overflow:auto;border-color:var(--line-soft);background:#f9fbfd}.editor-toolbar{display:grid;gap:14px;margin-bottom:18px;padding:15px;border:1px solid #bfd2e6;border-radius:var(--radius-lg);background:#f5faff}.editor-toolbar>div>strong{display:block;margin-bottom:8px;color:var(--blue);font-size:.87rem}.token-list,.emoji-list{display:flex;flex-wrap:wrap;gap:7px}.token-button,.emoji-button{min-height:34px;padding:5px 9px;border:1px solid #9db8d2;border-radius:999px;background:#fff;color:var(--blue);cursor:pointer;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}.emoji-button{min-width:38px;font-family:inherit;font-size:1.05rem}.token-button:hover,.emoji-button:hover{border-color:var(--blue);background:var(--blue-soft)}.message-editor-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:22px;align-items:start}.message-editor-grid textarea{min-height:360px;font-family:Arial,Helvetica,sans-serif;line-height:1.5}.preview-label{display:block;margin-bottom:6px;font-weight:700}.phone-preview{max-width:390px;margin-inline:auto;padding:12px;border:7px solid #273343;border-radius:24px;background:#dfe8df;box-shadow:var(--shadow-lg)}.phone-preview-head{margin:-12px -12px 14px;padding:12px 14px;border-radius:15px 15px 0 0;background:#075e54;color:#fff;font-size:.9rem;font-weight:700}.message-bubble{min-height:140px;padding:12px 13px;border-radius:8px 8px 2px 8px;background:#dcf8c6;box-shadow:0 1px 2px rgba(0,0,0,.15);white-space:pre-wrap;overflow-wrap:anywhere}.attachment-zone{display:grid;gap:14px;margin-top:20px}.attachment-card{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #b8cde1;border-radius:var(--radius-lg);background:#f5faff}.attachment-card.compact{margin:4px 0 12px;padding:10px}.attachment-card>span:first-child{font-size:1.55rem}.attachment-card>span:nth-child(2){min-width:0;flex:1}.attachment-card strong,.attachment-card small{display:block;overflow-wrap:anywhere}.attachment-card .checkbox-label{margin-left:auto}.template-attachment{border-style:dashed}.template-attachment[hidden]{display:none}.field input[type=file]{width:100%;padding:10px;border:2px dashed #7d8998;border-radius:var(--radius);background:#fff}.field input[type=file]::file-selector-button{margin-right:12px;padding:8px 12px;border:0;border-radius:3px;background:var(--blue);color:#fff;font-weight:700;cursor:pointer}
@media(max-width:900px){.message-editor-grid{grid-template-columns:1fr}.phone-preview{max-width:none}.template-card-grid{grid-template-columns:1fr}}
@media(max-width:600px){.attachment-card{align-items:flex-start;flex-wrap:wrap}.attachment-card .checkbox-label{width:100%;margin-left:0}.token-button{font-size:.72rem}}
/* ACCESSIBILITA UE V11.1 - EN 301 549 v3.2.1 / WCAG 2.1 AA; verifica prudenziale WCAG 2.2 AA */
:root{--a11y-focus-dark:#132238;--a11y-focus-light:#fff;--a11y-interactive-border:#68788a}
html{scroll-padding-block:1rem 6rem;-webkit-text-size-adjust:100%;text-size-adjust:100%}
/* Indicatore a due colori: resta percepibile sia su fondi chiari sia su fondi scuri. */
.btn:focus-visible,.linkbtn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--a11y-focus-dark);outline-offset:3px;box-shadow:0 0 0 2px var(--a11y-focus-light);scroll-margin-block:5rem}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.selection-toolbar input:focus-visible,table input:focus-visible,table select:focus-visible,table textarea:focus-visible{border-color:var(--blue-dark);outline:3px solid var(--a11y-focus-dark);outline-offset:3px;box-shadow:0 0 0 2px var(--a11y-focus-light)}
.skip:focus-visible{left:16px;top:16px;border-color:var(--a11y-focus-dark);outline:3px solid var(--a11y-focus-dark);outline-offset:3px;box-shadow:0 0 0 2px var(--a11y-focus-light)}
/* I componenti compositi rendono visibile il focus anche sul relativo contenitore. */
.choice-card:focus-within,.person-card:focus-within,.file-drop:focus-within,.attachment-card:focus-within{border-color:var(--a11y-focus-dark);outline:3px solid var(--a11y-focus-dark);outline-offset:3px;box-shadow:0 0 0 2px var(--a11y-focus-light)}
/* Rafforza esclusivamente i bordi di controlli bianchi che erano prossimi al limite di contrasto. */
.btn.tertiary,.token-button,.emoji-button{border-color:var(--a11y-interactive-border)}
/* Evita che l'opacità riduca la leggibilità delle informazioni nelle righe non selezionabili. */
.participant-row.disabled{opacity:1;background:#f4f5f7;color:#596575}
/* Mantiene leggibili etichette e valori lunghi durante zoom e reflow. */
:where(h1,h2,h3,label,.btn,.nav-links a,.status,.metric-value,.message-bubble){overflow-wrap:anywhere}
@media (forced-colors:active){.btn,.nav-links a,.nav-toggle,.linkbtn,.choice-card,.person-card,.file-drop,.attachment-card,.field input,.field select,.field textarea,table input,table select,table textarea,.token-button,.emoji-button,.status,.notice{border:1px solid ButtonText;forced-color-adjust:auto}.btn:focus-visible,.linkbtn:focus-visible,a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid Highlight;box-shadow:none}.status,.notice{background:Canvas;color:CanvasText}}


/* V12 - modulo pubblico candidature e informativa privacy. Solo componenti nuovi. */
.bot-field{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.course-public-form{position:relative}
.form-legal-note{max-width:78ch;margin:18px auto;color:var(--muted);font-size:.9rem}
.privacy-notice{display:grid;gap:18px}
.privacy-icon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.privacy-icon-card{min-width:0;padding:20px;border:1px solid var(--line);border-top:5px solid var(--blue);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}
.privacy-icon-card h2{margin:10px 0 6px;font-size:1.08rem}.privacy-icon-card p{margin:0;color:var(--muted)}
.privacy-icon{display:grid;width:46px;height:46px;place-items:center;border-radius:50%;background:var(--blue-soft);font-size:1.45rem}
.child-summary{border-left:6px solid var(--yellow);background:#fffbea}
.guardian-section[hidden],[data-domicile-section][hidden],[data-birth-manual][hidden],[data-fip-roles][hidden]{display:none!important}
.success-panel{border-top:6px solid var(--ok)}
@media(max-width:900px){.privacy-icon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.privacy-icon-grid{grid-template-columns:1fr}.privacy-icon-card{padding:16px}}
@media(forced-colors:active){.privacy-icon-card,.child-summary{border:1px solid CanvasText}.privacy-icon{border:1px solid CanvasText;background:Canvas;color:CanvasText}}

/* 4REF V12.7 - tema "Sportiva ma sobria". Palette istituzionale ad alto contrasto. */
:root{
  --brand-navy:#082b56;
  --brand-navy-2:#0a356a;
  --brand-blue:#0a5eb0;
  --brand-blue-hover:#084b8d;
  --brand-gold:#f2b705;
  --brand-gold-ink:#775500;
  --brand-green:#147a4b;
  --brand-bg:#f5f7fa;
  --brand-surface:#ffffff;
  --brand-line:#d9e1ea;
  --brand-muted:#57687d;
  --blue:var(--brand-blue);
  --blue-dark:var(--brand-blue-hover);
  --blue-deep:var(--brand-navy);
  --blue-soft:#eaf2fb;
  --yellow:var(--brand-gold);
  --ink:#17263a;
  --muted:var(--brand-muted);
  --line:var(--brand-line);
  --line-soft:#e8edf3;
  --soft:var(--brand-bg);
  --soft-2:#eef2f6;
  --radius:8px;
  --radius-lg:12px;
  --shadow:0 1px 3px rgba(8,43,86,.08),0 5px 18px rgba(8,43,86,.045);
  --shadow-lg:0 12px 34px rgba(8,43,86,.12);
}
body{background:var(--brand-bg);font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}
.container{width:min(1380px,calc(100% - 44px))}
h1,h2,h3{color:#10233d;letter-spacing:-.015em}
a{color:var(--brand-blue)}

/* Header a doppio marchio: 4REF e FIP Sicilia rimangono entità separate. */
.mast{border-top:0;background:linear-gradient(118deg,#061f40 0%,var(--brand-navy) 48%,#0b3b72 100%);box-shadow:0 2px 12px rgba(3,25,52,.18)}
.mast-inner{min-height:104px;padding:14px 0}
.identity{display:flex;align-items:center;min-width:0}
.brand-lockup{display:inline-flex;align-items:center;min-width:0;color:#fff;text-decoration:none}
.brand-lockup:hover{text-decoration:none}
.site-logo{display:block;max-width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.18))}
.brand-lockup .site-logo{width:auto;height:58px;max-width:min(100%,320px)}
.brand-copy{display:grid;gap:1px;min-width:0}
.brand{display:block;color:#fff;font-size:2rem;font-weight:800;letter-spacing:.025em;line-height:1;text-decoration:none}
.eyebrow{margin:0;color:#fff;font-size:.8rem;font-weight:600;letter-spacing:.015em;text-transform:none;opacity:.94}
.mast-tools{display:flex;align-items:center;gap:24px}
.fip-lockup{display:flex;align-items:center;min-height:58px;padding-right:24px;border-right:1px solid rgba(255,255,255,.22)}
.fip-lockup img{display:block;width:auto;height:58px;object-fit:contain}
.user-area{gap:9px}
.user-badge{width:38px;height:38px;border:2px solid rgba(255,255,255,.58);background:rgba(255,255,255,.11)}
.linkbtn{min-height:36px;padding:6px 5px;color:#fff;font-weight:650;text-decoration:none}
.linkbtn:hover{text-decoration:underline}
.user-link{max-width:210px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* Shell desktop con navigazione laterale, coerente con il mockup scelto. */
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:calc(100vh - 104px)}
.app-content{min-width:0;display:flex;flex-direction:column}
.app-content .main{width:min(1380px,calc(100% - 48px));margin-inline:auto;flex:1}
.nav{position:relative;z-index:20;background:#fff;border-right:1px solid var(--brand-line);box-shadow:2px 0 12px rgba(8,43,86,.035)}
.nav-inner{position:sticky;top:0;width:100%;padding:22px 14px 24px}
.nav-heading{display:flex;align-items:flex-end;justify-content:space-between;padding:0 10px 12px;color:var(--brand-muted)}
.nav-heading span{font-size:.72rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.nav-heading small{font-size:.7rem}
.nav-links{display:grid;gap:4px}
.nav-links a{position:relative;display:flex;min-height:46px;align-items:center;padding:10px 14px 10px 18px;border:0;border-radius:8px;color:#263b56;font-weight:650;text-decoration:none;transition:background-color .15s,color .15s,transform .15s}
.nav-links a::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:4px;border-radius:99px;background:transparent}
.nav-links a:hover,.nav-links a:focus-visible{background:#f0f5fb;color:var(--brand-navy)}
.nav-links a[aria-current=page]{background:#eaf2fb;color:var(--brand-navy);font-weight:800}
.nav-links a[aria-current=page]::before{background:var(--brand-gold)}
.nav-toggle{display:none}
.nav-project{display:grid;gap:1px;margin:28px 8px 0;padding:16px;border:1px solid #dbe4ee;border-radius:10px;background:#f8fafc;color:var(--brand-navy)}
.nav-project-dot{width:9px;height:9px;margin-bottom:5px;border-radius:50%;background:var(--brand-gold);box-shadow:0 0 0 4px rgba(242,183,5,.16)}
.nav-project strong{font-size:.88rem}.nav-project small{color:var(--brand-muted);font-size:.72rem;line-height:1.35}

.main{padding:26px 0 62px}
.breadcrumb{margin-bottom:16px;font-size:.83rem}
.page-hero{align-items:center;margin-bottom:22px;padding:22px 24px;border:1px solid #dbe4ee;border-left:0;border-top:4px solid var(--brand-navy);border-radius:var(--radius-lg);background:linear-gradient(120deg,#fff 0%,#f7faff 100%);box-shadow:var(--shadow)}
.page-hero h1{margin-bottom:6px;font-size:clamp(1.72rem,2.6vw,2.25rem)}
.page-hero p{color:var(--brand-muted)}
.section-kicker{color:var(--brand-gold-ink);font-size:.72rem;font-weight:800;letter-spacing:.085em}

.btn{border-color:var(--brand-blue);border-radius:7px;background:var(--brand-blue);box-shadow:0 1px 2px rgba(8,43,86,.08)}
.btn:hover{border-color:var(--brand-blue-hover);background:var(--brand-blue-hover)}
.btn.secondary{border-color:#a9bed4;background:#fff;color:var(--brand-navy)}
.btn.secondary:hover{border-color:var(--brand-blue);background:#edf5fd}
.btn.tertiary{border-color:#9eacbb;color:var(--brand-navy)}
.login-panel .btn:not(.secondary):not(.tertiary){border-color:#d09b00;background:var(--brand-gold);color:var(--brand-navy);box-shadow:none}
.login-panel .btn:not(.secondary):not(.tertiary):hover{border-color:#b48200;background:#e4aa00}

.metric-grid{gap:18px}
.metric-card{position:relative;min-height:138px;justify-content:flex-start;padding:22px 22px 18px;border:1px solid #dce4ed;border-top:0;border-radius:12px;box-shadow:var(--shadow);overflow:hidden}
.metric-card::before{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--brand-blue)}
.metric-card:nth-child(2n)::before{background:var(--brand-green)}
.metric-card:nth-child(3n)::before{background:var(--brand-gold)}
.metric-card:hover{transform:translateY(-2px);border-color:#c9d6e4;box-shadow:var(--shadow-lg)}
.metric-value{margin-bottom:6px;color:var(--brand-navy);font-size:2.2rem}
.metric-link{margin-top:auto;padding-top:13px;color:var(--brand-blue)}

.panel,.form-section,.table-wrap,.toolbar,.selection-toolbar,.confirmation-bar{border-color:#dce4ed;background:#fff;box-shadow:var(--shadow)}
.panel{border-radius:12px}
.panel-heading{padding-bottom:12px;border-bottom:1px solid #edf1f5}
.form-section{border-radius:12px}
.form-section-heading>span{background:var(--brand-navy);color:#fff;box-shadow:0 0 0 4px #eaf2fb}
.table-wrap{border-radius:12px;overflow:auto}
table thead th{background:#f1f5f9;color:#344a65;font-size:.73rem;letter-spacing:.025em;text-transform:uppercase}
table tbody tr:hover{background:#f8fbff}
.status{border-radius:999px;font-weight:700}
.status.ok{background:#e3f5eb;color:#0b6b40}.status.info{background:#e5f1fd;color:#07599f}.status.muted{background:#eef1f4;color:#526173}.status.warning{background:#fff2cc;color:#775500}.status.fail{background:#fde9e7;color:#9b1c14}

.notice{border-radius:10px;box-shadow:0 1px 3px rgba(8,43,86,.04)}
.choice-card,.person-card,.attachment-card,.privacy-icon-card{border-radius:10px}
.choice-card:has(input:checked),.person-card:has(input:checked){border-color:#86acd1;background:#f0f6fc}
.date-tile{border-radius:8px;background:#edf4fb;color:var(--brand-navy)}
.list-item{border-radius:8px}

.login-shell{min-height:calc(100vh - 250px);align-items:flex-start;padding-top:48px}
.login-panel{position:relative;max-width:500px;padding:34px 36px;border:1px solid #d8e2ec;border-top:5px solid var(--brand-gold);border-radius:14px;background:#fff;box-shadow:0 18px 46px rgba(8,43,86,.13);overflow:hidden}
.login-panel::after{content:"";position:absolute;right:-26px;top:-28px;width:150px;height:150px;background:url('brand/4ref-mark.svg') center/contain no-repeat;opacity:.045;pointer-events:none}
.login-panel h1{color:var(--brand-navy)}
.field input,.field select,.field textarea{border-color:#9dabb9;border-radius:7px;background:#fff}
.field input:hover,.field select:hover,.field textarea:hover{border-color:#708399}

.privacy-icon-card{border-top-color:var(--brand-navy)}
.privacy-icon{background:#edf4fb}
.child-summary{border-left-color:var(--brand-gold);background:#fffbec}

footer{margin-top:auto;padding:20px 0;border-top:1px solid #dbe3ec;background:#eef2f6;color:#41536a}
.footer-grid{display:grid;grid-template-columns:auto auto minmax(220px,1fr);align-items:center;gap:26px}
.footer-brand{display:flex;align-items:center}.footer-brand-link{display:inline-flex;align-items:center}.footer-brand .site-logo{width:auto;height:42px;max-width:min(100%,240px)}.footer-brand p{margin:1px 0 0;font-size:.76rem}
.footer-fip{display:flex;align-items:center;padding-left:24px;border-left:1px solid #ccd6e0}.footer-fip img{width:auto;height:42px;filter:none}
.footer-service{margin:0;text-align:right;font-size:.82rem}

/* Mantiene il focus a due colori sopra la nuova palette. */
:root{--a11y-focus-dark:#10233d;--a11y-focus-light:#fff;--a11y-interactive-border:#68788a}

@media(max-width:1080px){
  .app-shell{display:block;min-height:0}
  .nav{border-right:0;border-bottom:1px solid var(--brand-line);box-shadow:none;background:var(--brand-navy)}
  .nav-inner{position:relative;width:min(100% - 28px,1380px);margin-inline:auto;padding:0}
  .nav-heading,.nav-project{display:none}
  .nav-toggle{display:block;min-height:48px;padding:12px 4px;color:#fff}
  .nav-links{display:none;padding:0 0 12px}
  .nav-links.open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
  .nav-links a{color:#fff;border-radius:6px}
  .nav-links a::before{top:8px;bottom:8px}
  .nav-links a:hover,.nav-links a:focus-visible,.nav-links a[aria-current=page]{background:rgba(255,255,255,.1);color:#fff}
  .app-content .main{width:min(100% - 36px,1380px)}
}
@media(max-width:760px){
  .container,.app-content .main{width:min(100% - 22px,1380px)}
  .mast-inner{min-height:86px;align-items:center;gap:12px;padding:10px 0}
  .brand-lockup .site-logo{height:46px;max-width:min(100%,255px)}.brand{font-size:1.55rem}.eyebrow{font-size:.68rem}
  .mast-tools{gap:10px}.fip-lockup{min-height:42px;padding-right:10px}.fip-lockup img{height:40px}
  .user-area{gap:5px}.user-link{display:none}.user-badge{width:34px;height:34px}
  .nav-links.open{grid-template-columns:1fr}
  .page-hero{padding:18px}.panel,.form-section{padding:17px}
  .login-shell{padding-top:24px}.login-panel{padding:26px 22px}
  .footer-grid{grid-template-columns:1fr;gap:14px}.footer-fip{padding-left:0;border-left:0}.footer-service{text-align:left}
}
@media(max-width:430px){
  .mast-tools{gap:6px}.fip-lockup{padding-right:6px}.fip-lockup img{height:32px}
  .brand-lockup .site-logo{height:40px;max-width:min(100%,220px)}.brand{font-size:1.38rem}.eyebrow{max-width:145px}
}
@media print{
  .brand-lockup,.fip-lockup,.nav-project,.footer-fip{display:none!important}
  .app-shell{display:block}.app-content .main{width:100%}.brand{color:var(--ink)}
}
@media(forced-colors:active){
  .site-logo,.fip-lockup img,.footer-brand img,.footer-fip img{forced-color-adjust:auto}
  .nav-links a[aria-current=page]::before,.metric-card::before,.nav-project-dot{background:Highlight}
}
/* Il logo FIP fornito è la versione negativa: nel footer resta su fondo navy per non alterarne i colori ufficiali. */
.footer-fip{justify-self:start;padding:7px 12px;border-left:0;border-radius:8px;background:var(--brand-navy)}
.footer-fip img{height:38px}
@media(max-width:760px){.footer-fip{padding:6px 10px}.footer-fip img{height:34px}}

/* V13.1 - elenco tesserati compatto: meno colonne, due righe informative al massimo. */
.referees-table-wrap{overflow-x:auto}
.referees-table{table-layout:fixed;min-width:820px}
.referees-table th,.referees-table td{padding:9px 10px;vertical-align:middle}
.referees-table .ref-col-person{width:22%}
.referees-table .ref-col-license{width:12%}
.referees-table .ref-col-role{width:24%}
.referees-table .ref-col-medical{width:20%}
.referees-table .ref-col-contact{width:18%}
.referees-table td>strong,.referees-table .contact-line{display:block;line-height:1.22}
.ref-meta{display:flex;align-items:center;gap:5px;min-width:0;margin-top:3px;color:var(--brand-muted);font-size:.75rem;line-height:1.15;white-space:nowrap}
.ref-meta>span:not(.status){overflow:hidden;text-overflow:ellipsis}
.status.mini{padding:2px 6px;font-size:.68rem;line-height:1.2}
.certificate-compact{display:flex;align-items:center;gap:6px;min-width:0;white-space:nowrap}
.certificate-compact strong{font-size:.9rem}
.ref-contact{min-width:0}
.contact-line{white-space:nowrap}
.contact-email{display:block;max-width:100%;margin-top:3px;overflow:hidden;color:var(--brand-muted);font-size:.75rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}
.referees-table .actions-col,.referees-table td:last-child{width:1%;white-space:nowrap}
@media(max-width:1180px){
  .referees-table{min-width:780px}
  .referees-table .ref-col-person{width:23%}.referees-table .ref-col-license{width:11%}.referees-table .ref-col-role{width:23%}.referees-table .ref-col-medical{width:21%}.referees-table .ref-col-contact{width:18%}
}
@media(max-width:760px){
  .referees-table{min-width:760px}
  .referees-table th,.referees-table td{padding:8px 9px}
}

/* V13.2 - provincia come dimensione operativa primaria. */
.province-badge{display:inline-flex;align-items:stretch;max-width:100%;overflow:hidden;border:1px solid #86acd1;border-radius:7px;background:#edf4fb;color:var(--brand-navy);font-size:.72rem;font-weight:700;line-height:1.2;vertical-align:middle;white-space:nowrap}
.province-badge strong{display:flex;align-items:center;padding:3px 7px;background:var(--brand-navy);color:#fff;font-size:.75rem;letter-spacing:.04em}
.province-badge span{overflow:hidden;padding:3px 7px;text-overflow:ellipsis}
.province-badge.muted{padding:3px 7px;border-color:#c8d1db;background:#f2f4f6;color:#526173;font-weight:650}
.province-role-line{display:flex;align-items:center;gap:8px;min-width:0}
.province-role-line>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.territory-toolbar{align-items:end}
.province-filter-field{min-width:200px;max-width:270px}
.territory-context{display:flex;align-items:center;gap:10px;margin:-8px 0 18px;padding:9px 12px;border:1px solid #cddbea;border-left:4px solid var(--brand-blue);border-radius:9px;background:#f5f9fd;color:#344a65;font-size:.82rem}
.territory-context>span{font-weight:750}.territory-context>small{margin-left:auto;color:var(--brand-muted)}
.territory-context.prominent{margin:0 0 16px;background:#fff}
.province-overview-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:14px}
.province-overview-item{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;padding:9px 10px;border:1px solid #d8e3ee;border-radius:9px;background:#fff;color:inherit}
.province-overview-item:focus-within,.province-overview-item:hover{border-color:#86acd1;background:#f6faff}
.province-overview-main{display:flex;min-width:0;align-items:center;color:inherit;text-decoration:none}.province-overview-main:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:6px}.province-overview-item .province-badge{min-width:0}.province-count{flex:0 0 auto;color:var(--brand-navy);font-size:1.15rem}
.province-group-counts{display:flex;align-items:stretch;justify-content:flex-end;gap:6px;flex:0 0 auto}.province-group-count{display:grid;min-width:66px;grid-template-columns:auto auto;align-items:center;gap:7px;padding:5px 7px;border:1px solid #d8e3ee;border-radius:7px;background:#fff;color:var(--ink);text-decoration:none}.province-group-count:hover,.province-group-count:focus-visible{border-color:#86acd1;background:var(--blue-soft)}.province-group-count span{color:var(--muted);font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.02em}.province-group-count strong{color:var(--brand-navy);font-size:1rem;line-height:1}.section-note{margin:.25rem 0 0;color:var(--muted);font-size:.86rem}
.province-chip-list{display:flex;flex-wrap:wrap;gap:4px}
.province-scope-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:6px}
.province-scope-choice{display:flex;align-items:center;gap:8px;min-height:48px;padding:8px 10px;border:1px solid #cdd8e3;border-radius:8px;background:#fff;cursor:pointer}
.province-scope-choice:has(input:checked){border-color:#86acd1;background:#f0f6fc}
.province-scope-choice input{flex:0 0 auto}.province-scope-choice span{display:flex;align-items:baseline;gap:7px;min-width:0}.province-scope-choice strong{color:var(--brand-navy)}.province-scope-choice small{overflow:hidden;color:var(--brand-muted);text-overflow:ellipsis;white-space:nowrap}
.selection-toolbar select[data-filter-province],.selection-toolbar select[data-filter-participant-province]{min-height:40px;max-width:230px;border:1px solid #9dabb9;border-radius:7px;background:#fff;color:var(--ink)}
.person-card>.province-badge{margin-left:auto;flex:0 0 auto}
@media(max-width:980px){.province-overview-grid,.province-scope-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.territory-context{flex-wrap:wrap}.territory-context>small{width:100%;margin-left:0}}
@media(max-width:620px){.province-overview-grid,.province-scope-grid{grid-template-columns:1fr}.province-filter-field{max-width:none}.territory-toolbar{align-items:stretch}.province-role-line{gap:5px}.province-badge span{max-width:115px}.province-overview-item{align-items:stretch;flex-direction:column}.province-group-counts{width:100%;justify-content:stretch}.province-group-count{flex:1;justify-content:space-between}.selection-toolbar select[data-filter-province],.selection-toolbar select[data-filter-participant-province]{max-width:none;width:100%}}
@media(forced-colors:active){.province-badge strong{background:Highlight;color:HighlightText}.province-overview-item:focus-visible,.province-scope-choice:has(input:checked){outline:2px solid Highlight}}

.fieldset-reset{border:0;padding:0;margin:0;min-width:0}

/* 4REF V14.1.1 - riallineamento modulo candidature e visibilità condizionale. */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.course-public-form [hidden]{display:none!important}
.course-public-form .form-grid{align-items:start}
.course-public-form .form-grid>.full,
.course-public-form>.form-section .full{grid-column:1/-1}
.course-public-form .form-subsection{display:grid;gap:14px;margin-top:2px}
.course-public-form .form-subsection+.form-subsection{margin-top:22px;padding-top:20px;border-top:1px solid var(--line-soft)}
.course-public-form .form-subsection h3{margin:0;font-size:1.02rem;color:var(--ink)}
.course-public-form .three-columns{grid-template-columns:repeat(3,minmax(0,1fr))}
.course-public-form .address-grid{grid-template-columns:minmax(0,1.7fr) minmax(110px,.55fr) minmax(170px,.75fr)}
.course-public-form .derived-data-grid{display:grid;grid-template-columns:minmax(120px,.55fr) minmax(170px,.75fr) minmax(0,1.7fr);gap:18px;align-items:start}
.course-public-form .size-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.course-public-form .choice-grid .choice-card{height:100%}
.course-public-form .choice-grid .choice-card>span,
.course-public-form .choice-grid .choice-card>label{height:100%}
.course-public-form .choice-card label{min-height:58px}
.course-public-form .course-choice-grid .choice-card{display:flex;align-items:stretch}
.course-public-form .course-choice-grid .choice-card>input{margin:17px 0 0 14px}
.course-public-form .course-choice-grid .choice-card>span{display:flex;flex:1;flex-direction:column;justify-content:center;padding:14px}
.course-public-form .field input[readonly]{background:var(--soft-2);color:var(--ink);cursor:default}
.course-public-form .domicile-fields{display:grid;gap:14px}
.course-public-form .fip-role-fieldset{margin-top:16px}
.course-public-form .fip-role-grid{margin-top:8px}
@media(max-width:900px){
  .course-public-form .three-columns,
  .course-public-form .address-grid,
  .course-public-form .derived-data-grid,
  .course-public-form .size-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .course-public-form .derived-data-grid .field:last-child{grid-column:1/-1}
}
@media(max-width:760px){
  .course-public-form .three-columns,
  .course-public-form .address-grid,
  .course-public-form .derived-data-grid,
  .course-public-form .size-grid{grid-template-columns:1fr}
  .course-public-form .derived-data-grid .field:last-child{grid-column:auto}
}
.course-public-form .choice-grid label.choice-card{display:flex;align-items:flex-start;gap:9px;padding:14px;cursor:pointer}
.course-public-form .choice-grid label.choice-card>input{flex:0 0 auto;margin-top:3px}
.course-public-form .choice-grid label.choice-card>span{display:block;min-width:0;flex:1}
.course-public-form .choice-grid label.choice-card strong,.course-public-form .choice-grid label.choice-card small{display:block}
.course-public-form .course-choice-grid label.choice-card>input{margin-top:3px}
.course-public-form .course-choice-grid label.choice-card>span{padding:0;justify-content:flex-start}
.course-public-form .course-choice-grid label.choice-card>input{margin:3px .45rem 0 0}
.course-public-form .course-choice-grid label.choice-card>span{display:flex;flex-direction:column;justify-content:center}

/* V14.3 - elenco tesserati compatto */
.ref-person-link{color:inherit;text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.16em}
.ref-person-link:hover,.ref-person-link:focus-visible{text-decoration-thickness:.14em}

/* V14.3 - azioni distruttive esplicite, senza JavaScript inline */
.destructive-details{margin-top:.35rem}.destructive-details summary{cursor:pointer;font-size:.875rem}.compact-delete-form{display:grid;gap:.35rem;margin-top:.35rem;min-width:11rem}.danger-link{color:#a61b1b;font-weight:700}

/* V14.3 - privacy/account */
.danger-zone{border-color:#c84a4a}.danger-button{background:#9f1717;border-color:#9f1717}.danger-button:hover,.danger-button:focus-visible{background:#7f1111;border-color:#7f1111}
/* V14.3 - registro richieste privacy */
.privacy-request-list{display:grid;gap:1rem}
.privacy-request-update{margin-top:.85rem}
.privacy-request-card{min-width:0}


/* V14.4 - password policy e MFA */
.password-policy{grid-column:1/-1;display:grid;gap:.45rem;margin-top:.2rem;padding:.8rem .9rem;border:1px solid var(--line-soft);border-radius:9px;background:var(--soft-2)}
.password-strength-track{height:8px;overflow:hidden;border-radius:999px;background:#d8dee6}
.password-strength-track>span{display:block;width:0;height:100%;background:#7b8794;transition:width .18s ease,background-color .18s ease}
.password-policy.strength-weak .password-strength-track>span{background:#b42318}.password-policy.strength-medium .password-strength-track>span{background:#b06b00}.password-policy.strength-good .password-strength-track>span{background:#26734d}.password-policy.strength-strong .password-strength-track>span{background:#11623a}
.password-strength-label{margin:0;font-size:.85rem;font-weight:750}.password-requirements{margin:.15rem 0 0;padding-left:1.2rem;color:var(--brand-muted);font-size:.8rem}.password-requirements li{margin:.18rem 0}.password-requirements .rule-ok{color:#1d6b45;font-weight:700}
.recovery-code-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem}.recovery-code-grid code{padding:.65rem;border:1px solid var(--line-soft);border-radius:7px;background:var(--soft-2);text-align:center;font-size:1rem;letter-spacing:.06em}
.secret-code{display:inline-block;margin:.45rem 0;word-break:normal;overflow-wrap:normal;white-space:nowrap;max-width:100%;overflow-x:auto}
@media(max-width:620px){.recovery-code-grid{grid-template-columns:1fr}}
@media(forced-colors:active){.password-strength-track{border:1px solid CanvasText}.password-strength-track>span{background:Highlight!important}.password-requirements .rule-ok{color:CanvasText}}

/* V14.5 - WebAuthn/passkey */
.passkey-feedback{min-height:1.4em;margin:4px 0 0;color:var(--muted);font-size:.92rem}
.passkey-list{display:grid;gap:12px;margin-top:14px}
.passkey-item{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--soft-2)}
.passkey-item>div{display:grid;gap:3px}.passkey-item small{display:block;color:var(--muted)}
.recovery-panel{margin-top:18px;padding:14px 16px;border:1px solid #d9c98d;border-radius:var(--radius-md);background:#fffaf0}
.recovery-panel summary{cursor:pointer;font-weight:700}
@media(max-width:760px){.passkey-item{flex-direction:column}.passkey-item form{width:100%}}


/* V14.6.2 - provisioning MFA TOTP con QR locale */
.totp-enrollment{display:grid;grid-template-columns:1fr;gap:1rem;align-items:start;margin:1rem 0;max-width:760px}
.totp-qr-card{display:grid;gap:.65rem;justify-items:center;padding:1rem;border:1px solid var(--border,#d9dee7);border-radius:12px;background:#fff;text-align:center;max-width:360px;width:100%;margin-inline:auto}
.totp-qr{width:min(100%,300px);aspect-ratio:1;display:grid;place-items:center;overflow:hidden}
.totp-qr svg{display:block;width:100%;height:auto;max-width:300px}
.totp-manual{margin:0;min-width:0;overflow:hidden}.totp-manual p{margin:.5rem 0}.mfa-explainer{margin-top:1rem}
.totp-manual .secret-code{display:block;width:100%;padding:.7rem .8rem;border:1px solid var(--line-soft);border-radius:8px;background:var(--soft-2);font-size:1rem;letter-spacing:.08em;user-select:all;overflow-x:auto;white-space:nowrap;word-break:normal;overflow-wrap:normal}
@media (max-width:700px){.totp-qr-card{max-width:340px}.totp-manual .secret-code{font-size:.9rem;letter-spacing:.05em}}

/* V14.6.3 - iconografia UI self-hosted, decorativa e accessibile. */
.ui-icon{display:inline-block;width:1.25rem;height:1.25rem;flex:0 0 auto;vertical-align:-.2em;color:currentColor;overflow:visible}
.nav-links a{gap:11px}
.nav-icon{width:1.28rem;height:1.28rem;color:#52708f;transition:color .15s,transform .15s}
.nav-links a:hover .nav-icon,.nav-links a:focus-visible .nav-icon,.nav-links a[aria-current=page] .nav-icon{color:var(--brand-blue)}
.nav-links a[aria-current=page] .nav-icon{transform:scale(1.04)}
.nav-label{min-width:0}
.linkbtn{display:inline-flex;align-items:center;gap:6px}
.link-icon{width:1.08rem;height:1.08rem}
.page-hero-copy{display:flex;min-width:0;align-items:flex-start;gap:16px}
.page-hero-copy>div{min-width:0}
.page-hero-icon{display:grid;width:52px;height:52px;flex:0 0 52px;place-items:center;border:1px solid #cbdbea;border-radius:14px;background:#edf5fd;color:var(--brand-navy);box-shadow:0 1px 2px rgba(8,43,86,.05)}
.page-hero-glyph{width:28px;height:28px}
.metric-card-icon{display:grid;width:38px;height:38px;margin-bottom:13px;place-items:center;border:1px solid #d6e2ee;border-radius:10px;background:#f2f7fc;color:var(--brand-navy)}
.metric-glyph{width:21px;height:21px}
.empty-icon{font-size:inherit}
.empty-state-glyph{width:27px;height:27px}
.privacy-icon{font-size:inherit;color:var(--brand-navy)}
.privacy-glyph{width:25px;height:25px}
@media(max-width:1080px){.nav-links a .nav-icon{color:#dbe9f8}.nav-links a:hover .nav-icon,.nav-links a:focus-visible .nav-icon,.nav-links a[aria-current=page] .nav-icon{color:#fff}}
@media(max-width:760px){.page-hero-copy{gap:12px}.page-hero-icon{width:44px;height:44px;flex-basis:44px;border-radius:11px}.page-hero-glyph{width:24px;height:24px}.nav-links a{gap:10px}}
@media(max-width:430px){.page-hero-icon{width:40px;height:40px;flex-basis:40px}.page-hero-glyph{width:22px;height:22px}}
@media print{.nav-icon,.link-icon,.metric-card-icon,.page-hero-icon,.privacy-icon,.empty-icon{display:none!important}}
@media(forced-colors:active){.page-hero-icon,.metric-card-icon,.privacy-icon,.empty-icon{border:1px solid CanvasText;background:Canvas;color:CanvasText}.nav-icon,.link-icon{color:CanvasText}}

/* V14.6.4 - iconografia semantica per azioni, tabelle e avvisi. */
.btn{gap:8px}
.button-icon{width:1.08rem;height:1.08rem}
.btn.tertiary .button-icon{width:1rem;height:1rem}
.action-label{min-width:0}
.table-action{display:inline-flex;align-items:center;gap:5px}
.table-action-icon{width:.98rem;height:.98rem;color:currentColor}
.table-action-heading{display:inline-flex;align-items:center;gap:6px}
.table-heading-icon{width:1rem;height:1rem;color:#5b6e82}
.notice.has-ui-icon{position:relative;padding-left:47px}
.notice-icon{position:absolute;top:14px;left:15px;width:20px;height:20px;color:currentColor}
.notice.success .notice-icon{color:var(--ok)}
.notice.error .notice-icon,.notice.danger .notice-icon{color:var(--danger)}
.notice.warning .notice-icon{color:#8a6200}
.notice.info .notice-icon{color:var(--info)}
@media(max-width:430px){.btn{gap:7px}.button-icon{width:1.03rem;height:1.03rem}.notice.has-ui-icon{padding-left:43px}.notice-icon{left:13px}}
@media print{.button-icon,.table-action-icon,.table-heading-icon,.notice-icon{display:none!important}.notice.has-ui-icon{padding-left:16px}}
@media(forced-colors:active){.button-icon,.table-action-icon,.table-heading-icon,.notice-icon{color:CanvasText}}
.summary-label{display:inline-flex;align-items:center;gap:6px}
.summary-icon{width:1rem;height:1rem;color:currentColor}
.attachment-card>.ui-icon,.attachment-inline-icon{width:1.25rem;height:1.25rem;flex:0 0 auto;color:#5b6e82}
@media print{.summary-icon,.attachment-card>.ui-icon,.attachment-inline-icon{display:none!important}}
.inline-icon-text{display:inline-flex!important;align-items:center;gap:5px}
.inline-icon-text .attachment-inline-icon{width:1rem;height:1rem}

/* V14.7 - ingresso pubblico corsi evidenziato accanto all'accesso riservato */
.login-entry-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);gap:24px;width:min(980px,100%);align-items:stretch}
.login-entry-grid>.login-panel{width:auto;max-width:none;height:100%}
.course-entry-panel{background:var(--surface,#fff);border:1px solid var(--border,#d9dee7);border-top:5px solid var(--brand,#17365d);border-radius:12px;padding:28px;box-shadow:0 12px 30px rgba(23,54,93,.08);display:flex;flex-direction:column;justify-content:center;gap:14px}
.course-entry-panel h2{margin:0;font-size:clamp(1.45rem,2.2vw,2rem);line-height:1.18}
.course-entry-panel p{margin:0;line-height:1.55}
.course-entry-panel .course-entry-primary{width:100%;justify-content:center;font-size:1.05rem;padding:14px 18px}
.course-entry-links{display:grid;gap:8px;margin-top:4px}
.course-entry-links a{font-weight:600}
@media (max-width:760px){.login-entry-grid{grid-template-columns:1fr}.course-entry-panel{order:-1}}

/* V14.7 - service desk / ticketing */
.ticket-thread{display:grid;gap:12px;margin-top:14px}
.ticket-message{border:1px solid var(--line-soft,#d9dee7);border-radius:10px;padding:14px 16px;background:var(--soft-2,#f7f9fb)}
.ticket-message>strong,.ticket-message>small{display:block}.ticket-message>small{margin-top:2px;color:var(--muted)}
.ticket-message>p{margin:.65rem 0 0;white-space:normal;overflow-wrap:anywhere}
.ticket-message-internal{border-style:dashed;background:#fff8e8}
.success-panel code{font-size:clamp(1.15rem,3vw,1.7rem);letter-spacing:.03em}
@media print{.ticket-message{break-inside:avoid}.ticket-message-internal{background:#fff}}

/* V14.7.3 - login: iscrizioni a sinistra, accesso riservato a destra */
.login-entry-grid{grid-template-columns:minmax(300px,.9fr) minmax(0,1.1fr)}
.course-entry-brand{display:flex;align-items:center;justify-content:flex-start;min-height:86px;margin-bottom:2px}
.course-entry-brand img{display:block;width:min(210px,72%);height:auto;max-height:92px;object-fit:contain;object-position:left center}
.course-entry-panel{border-top-color:#1d428a;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
@media(max-width:760px){.login-entry-grid{grid-template-columns:1fr}.course-entry-brand{justify-content:center}.course-entry-brand img{object-position:center}}

/* V14.7.3 - service desk: struttura leggibile, filtri e tabella responsive */
.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:0 0 18px}
.metrics-grid .metric-card{min-height:112px;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:space-between;gap:8px}
.metrics-grid .metric-card span{font-size:.82rem;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.025em}
.metrics-grid .metric-card strong{font-size:2rem;line-height:1;color:var(--blue)}
.filter-bar{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(3,minmax(150px,.7fr)) auto auto;gap:12px;align-items:end;margin:0 0 18px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}
.filter-bar .field{margin:0}.filter-bar label{font-size:.8rem}.filter-bar .btn{min-height:42px}
.support-table-wrap{border-radius:var(--radius-lg);box-shadow:var(--shadow)}
.support-table{width:100%}.support-table thead th{position:sticky;top:0;z-index:2;background:#eef3f8}.support-table tbody tr:hover{background:#f7f9fc}
.support-table .ticket-number{font-weight:800;white-space:nowrap}.support-table .ticket-subject{display:block;max-width:260px;margin-top:3px;color:var(--muted);white-space:normal;line-height:1.25}
.detail-layout{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:20px;align-items:start}.detail-layout>.panel{margin:0}.detail-layout>form.panel{position:sticky;top:90px}
.ticket-message{box-shadow:0 1px 0 rgba(23,54,93,.03)}
.ticket-message-internal{border-color:#d7a92e;background:#fff9e8}
.live-filter-summary{align-self:center;color:var(--muted);font-size:.88rem;white-space:nowrap}
[data-live-filter-row][hidden]{display:none!important}
@media(max-width:1100px){.metrics-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.detail-layout{grid-template-columns:1fr}.detail-layout>form.panel{position:static}}
@media(max-width:700px){.metrics-grid{grid-template-columns:1fr 1fr}.filter-bar{grid-template-columns:1fr}.metrics-grid .metric-card{min-height:92px}}

/* V14.7.3 - editor partecipanti report paginato */
.participant-toolbar{position:static;z-index:8;background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:10px;margin-bottom:10px}
.participant-toolbar .page-size-label{display:inline-flex;align-items:center;gap:7px;font-size:.85rem;font-weight:700;color:var(--muted)}
.participant-toolbar .page-size-label select{min-height:40px;width:auto}
.participant-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:12px;padding:10px}
.participant-pagination [data-participant-page-info]{min-width:220px;text-align:center;color:var(--muted);font-size:.9rem}
.inline-field-actions{display:flex;align-items:stretch;gap:8px}.inline-field-actions select{min-width:0;flex:1}.btn.compact{padding:8px 11px;min-height:38px}
@media(max-width:760px){.participant-toolbar{position:static}.participant-pagination{flex-wrap:wrap}.participant-pagination [data-participant-page-info]{order:-1;width:100%}.inline-field-actions{flex-direction:column}}
/* Il marchio FIP Sicilia fornito è pensato per fondo scuro: il supporto garantisce contrasto anche nella card chiara. */
.course-entry-brand{background:#17365d;border-radius:10px;padding:12px 16px;min-height:92px}
.course-entry-brand img{width:min(230px,82%);max-height:100px}

/* V14.7.5 - refinements: FIP login branding, responsive header, referee readability */
.mast-inner{flex-wrap:wrap}
.mast-tools{display:flex;align-items:center;justify-content:flex-end;gap:18px;flex:1 1 360px;min-width:0}
.fip-lockup{display:flex;align-items:center;min-width:0}
.fip-lockup img{display:block;max-width:100%;height:auto}
.user-area{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap;min-width:0}
.logout-form{margin:0}.logout-btn{display:inline-flex;align-items:center;gap:6px}

.referees-table td,.referees-table th{vertical-align:top}
.ref-person{min-width:0}
.ref-person strong{display:block;line-height:1.24}
.ref-person-link{display:block;white-space:normal;overflow-wrap:anywhere}
.ref-meta{flex-wrap:wrap;white-space:normal;row-gap:4px}
.ref-meta>span:not(.status){overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere}
.ref-license code,.ref-contact small,.ref-contact .contact-line{overflow-wrap:anywhere}

.appointment-people-grid{grid-template-columns:1fr;gap:10px}
.appointment-person-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:'check main' 'check badges';align-items:start;gap:8px 12px;padding:14px 16px}
.appointment-person-card>input{grid-area:check;margin-top:3px}
.appointment-person-main{grid-area:main;min-width:0}
.appointment-person-main strong,.appointment-person-main small{display:block}
.appointment-person-main strong{line-height:1.24;overflow-wrap:anywhere}
.appointment-person-main small{margin-top:3px;overflow-wrap:anywhere}
.appointment-person-badges{grid-area:badges;display:flex;flex-wrap:wrap;gap:7px;align-items:center;min-width:0}
.appointment-person-badges>.status,.appointment-person-badges>.province-badge{flex:0 0 auto;white-space:nowrap}

.course-entry-panel{position:relative;overflow:hidden;border-top-color:#1d428a;background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)}
.course-entry-panel::after{content:"";position:absolute;right:-12px;top:-18px;width:104px;height:154px;background:url('brand/fip-sicilia-symbol-soft.png') right top/contain no-repeat;opacity:.12;pointer-events:none;z-index:0}
.course-entry-panel>*{position:relative;z-index:1}
.course-entry-brand-wrap{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-height:74px}
.course-entry-brand{display:flex;align-items:center;justify-content:flex-start;min-height:auto;margin-bottom:0;padding:0;background:transparent;border-radius:0}
.course-entry-brand img{display:block;width:min(180px,100%);height:auto;max-height:78px;object-fit:contain;object-position:left center}

@media(max-width:920px){
  .mast-tools{flex-basis:100%;justify-content:space-between}
  .user-area{margin-left:auto}
}

@media(max-width:760px){
  .mast-inner{gap:14px}
  .mast-tools{width:100%;gap:10px;align-items:flex-start}
  .fip-lockup img{height:34px;width:auto}
  .user-area{gap:6px;justify-content:flex-end}
  .user-link{display:inline-flex;font-size:0;line-height:1}
  .user-link .link-icon,.logout-btn .link-icon{margin:0}
  .user-link span,.logout-label{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
  .appointment-person-card{padding:13px 14px}
  .course-entry-brand-wrap{gap:10px;align-items:flex-start}
  .course-entry-brand{justify-content:flex-start}
  .course-entry-brand img{width:min(150px,100%);max-height:66px}
  .course-entry-panel::after{width:88px;height:132px;opacity:.10}
}

@media(max-width:520px){
  .identity,.mast-tools{width:100%}
  .brand-copy{min-width:0}
  .brand-lockup .site-logo{height:34px;max-width:min(100%,188px)}
  .brand{font-size:1.42rem}
  .eyebrow{font-size:.72rem}
  .mast-tools{justify-content:space-between}
  .fip-lockup img{height:28px}
  .user-area{margin-left:auto}
  .user-badge{display:none}
  .referees-table{min-width:700px}
  .course-entry-panel::after{width:76px;height:114px;right:-10px;top:-12px}
}

/* V14.7.5.1 - hotfix: impedisce al logo FIP nell'header desktop di usare le dimensioni native del PNG. */
@media (min-width:761px){
  .mast .fip-lockup img{
    width:auto;
    height:58px;
    max-width:180px;
    max-height:58px;
    object-fit:contain;
  }
}


/* V14.7.5.2 - metadati release nel riquadro progetto della navigazione laterale. */
.nav-project-meta{display:grid;gap:5px;margin:10px 0 0;padding-top:10px;border-top:1px solid #dbe4ee}
.nav-project-meta>div{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:baseline}
.nav-project-meta dt{margin:0;color:var(--brand-muted);font-size:.67rem;font-weight:700;text-transform:uppercase;letter-spacing:.045em}
.nav-project-meta dd{min-width:0;margin:0;color:var(--brand-navy);font-size:.7rem;font-weight:700;text-align:right;overflow-wrap:anywhere}

/* V14.7.5.5 - tabella Tesserati: colonne stabili e nessuna sovrapposizione */
.referees-table-wrap{
  overflow-x:auto;
  overflow-y:visible;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
}
.referees-table{
  table-layout:auto;
  min-width:1120px;
}
.referees-table th,.referees-table td{
  vertical-align:top;
}
.referees-table .ref-col-person,.referees-table .ref-person{min-width:260px;width:28%}
.referees-table .ref-col-license,.referees-table .ref-license{min-width:105px;width:11%}
.referees-table .ref-col-role,.referees-table .ref-role{min-width:310px;width:29%}
.referees-table .ref-col-medical,.referees-table .ref-medical{min-width:190px;width:17%}
.referees-table .ref-col-contact,.referees-table .ref-contact{min-width:210px;width:19%}
.referees-table .ref-person-link{
  display:block;
  max-width:100%;
  white-space:normal;
  word-break:normal;
  overflow-wrap:break-word;
  hyphens:auto;
}
.referees-table .ref-person strong{max-width:100%}
.referees-table .ref-meta{
  max-width:100%;
  flex-wrap:wrap;
  white-space:normal;
}
.referees-table .province-role-line{
  flex-wrap:wrap;
  align-items:flex-start;
  row-gap:6px;
}
.referees-table .province-role-line .province-badge,
.referees-table .province-role-line .status{
  max-width:100%;
  flex:0 0 auto;
}
.referees-table .ref-role .ref-meta span,
.referees-table .ref-contact,
.referees-table .ref-contact *{
  max-width:100%;
  overflow-wrap:break-word;
}
.referees-scroll-hint{display:none;margin:0 0 8px;color:var(--muted);font-size:.82rem}

@media(max-width:760px){
  .referees-table{min-width:1040px}
  .referees-table .ref-col-person,.referees-table .ref-person{min-width:245px;width:245px}
  .referees-table .ref-col-license,.referees-table .ref-license{min-width:105px;width:105px}
  .referees-table .ref-col-role,.referees-table .ref-role{min-width:290px;width:290px}
  .referees-table .ref-col-medical,.referees-table .ref-medical{min-width:185px;width:185px}
  .referees-table .ref-col-contact,.referees-table .ref-contact{min-width:205px;width:205px}
  .referees-scroll-hint{display:flex;align-items:center;gap:6px}
}

/* V14.8.1 - service desk: tabella entro la finestra e layout mobile a schede */
.support-table-wrap{overflow-x:hidden}
.support-table{width:100%;min-width:0;table-layout:fixed}
.support-table th,.support-table td{min-width:0;overflow-wrap:anywhere;word-break:normal;vertical-align:top}
.support-table th:nth-child(1){width:13%}.support-table th:nth-child(2){width:18%}.support-table th:nth-child(3){width:15%}.support-table th:nth-child(4){width:15%}.support-table th:nth-child(5){width:13%}.support-table th:nth-child(6){width:18%}.support-table th:nth-child(7){width:8%}
.support-table .ticket-subject{max-width:none}.support-table .support-opened strong{white-space:normal}
.support-table td:last-child .btn{width:100%;min-width:0;padding-inline:8px}
@media(max-width:760px){
  .support-table-wrap{overflow:visible;border:0;box-shadow:none;background:transparent}
  .support-table,.support-table tbody,.support-table tr,.support-table td{display:block;width:100%;min-width:0}
  .support-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
  .support-table tbody{display:grid;gap:12px}
  .support-table tbody tr{padding:10px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}
  .support-table tbody tr:hover{background:#fff}
  .support-table td{display:grid;grid-template-columns:minmax(104px,34%) minmax(0,1fr);gap:10px;padding:8px 0;border:0;border-bottom:1px solid var(--line-soft)}
  .support-table td:last-child{border-bottom:0}
  .support-table td::before{content:attr(data-label);color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}
  .support-table td:last-child .btn{width:auto;justify-self:start}
}

/* V14.8.1 - registro attività: filtri ordinati e tabella tecnica ad ampiezza libera controllata */
.audit-toolbar{display:grid;grid-template-columns:minmax(210px,1.25fr) minmax(150px,.65fr) minmax(210px,1fr) minmax(210px,1fr) auto auto;align-items:end;gap:12px}
.audit-toolbar .field{margin:0}.audit-toolbar .search-field{min-width:0}.audit-toolbar .btn{min-height:44px}
.audit-table-wrap{max-width:none;overflow:auto;overscroll-behavior-inline:contain;scrollbar-gutter:stable}
.audit-table{width:100%;min-width:1420px;table-layout:auto}
.audit-table th,.audit-table td{vertical-align:top}
.audit-table th{position:sticky;top:0;z-index:2;white-space:nowrap}
.audit-table td:nth-child(1){min-width:155px}.audit-table td:nth-child(2){min-width:120px}.audit-table td:nth-child(3){min-width:250px}.audit-table td:nth-child(4){min-width:170px}.audit-table td:nth-child(5){min-width:210px}.audit-table td:nth-child(6){min-width:160px}.audit-table td:nth-child(7){min-width:145px}.audit-table td:nth-child(8){min-width:360px;max-width:620px}
.audit-table code,.audit-table pre{white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}
.audit-table details{min-width:260px}.audit-table details>summary{cursor:pointer;font-weight:700;color:var(--blue)}
.audit-readable .definition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin-top:10px}.audit-readable .definition-grid>div{min-width:0}.audit-readable dd{overflow-wrap:anywhere}
@media(min-width:981px){.audit-table-wrap{width:min(1720px,calc(100vw - 296px));margin-left:50%;transform:translateX(-50%)}}
@media(max-width:1100px){.audit-toolbar{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-toolbar .btn{width:100%}}
@media(max-width:640px){.audit-toolbar{grid-template-columns:1fr}.audit-readable .definition-grid{grid-template-columns:1fr}.audit-table{min-width:1180px}}

/* V14.8.2 - confronto versioni informative */
.privacy-diff{display:grid;gap:.35rem}
.privacy-diff-row{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.55rem;align-items:start;padding:.55rem .7rem;border-radius:.5rem}
.privacy-diff-row>span{font-weight:800;text-align:center}
.privacy-diff-row.is-add{background:rgba(31,122,70,.10)}
.privacy-diff-row.is-remove{background:rgba(170,52,52,.10)}
.privacy-diff-row.is-same{opacity:.72}


/* V14.8.3 - service desk: elenco più leggibile, assegnazione separata e dettaglio ordinato */
.support-filter-bar{display:grid;grid-template-columns:minmax(260px,1.5fr) repeat(3,minmax(145px,.7fr)) auto;gap:12px;align-items:end}
.support-filter-bar .field{margin:0}.support-filter-bar .live-filter-summary{grid-column:1/-1;margin-top:-4px}
.support-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}
.support-table-wrap{overflow-x:hidden}
.support-table{width:100%;min-width:0;table-layout:auto}
.support-table th,.support-table td{vertical-align:top;min-width:0;overflow-wrap:anywhere}
.support-table th:nth-child(1),.support-table td:nth-child(1){width:112px}
.support-table th:nth-child(2),.support-table td:nth-child(2){width:34%}
.support-table th:nth-child(3),.support-table td:nth-child(3){width:22%}
.support-table th:nth-child(4),.support-table td:nth-child(4){width:28%}
.support-table th:nth-child(5),.support-table td:nth-child(5){width:76px;text-align:right}
.support-opened strong,.support-opened small{display:block;white-space:nowrap}.support-opened small{margin-top:3px;color:var(--muted)}
.support-ticket-main{display:grid;gap:4px;min-width:0}.support-ticket-main .ticket-number{width:max-content;max-width:100%}.support-ticket-main .ticket-subject{display:block;line-height:1.3}.support-ticket-main small{color:var(--muted)}
.support-state-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}.support-state-line strong{font-size:.94rem}.support-sla-alert{display:inline-flex;margin-top:7px;font-size:.78rem;font-weight:800;color:var(--danger);background:rgba(166,45,45,.08);border-radius:999px;padding:4px 8px}
.support-open-btn{min-width:0;width:auto;padding-inline:10px}
.support-detail-layout{align-items:start}.support-management-stack{display:grid;gap:16px;min-width:0}.support-detail-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.support-detail-heading h2{margin-bottom:3px}.support-detail-badges{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.support-assignment-panel select{width:100%}
.danger-zone{border-color:rgba(166,45,45,.35)}.danger-zone h2{color:var(--danger)}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
@media(max-width:1120px){.support-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.support-filter-bar .support-search{grid-column:1/-1}.support-filter-bar .btn{width:100%}.support-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:860px){.support-table th:nth-child(3),.support-table td:nth-child(3){display:none}.support-table th:nth-child(2),.support-table td:nth-child(2){width:43%}.support-table th:nth-child(4),.support-table td:nth-child(4){width:auto}.support-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){
  .support-filter-bar{grid-template-columns:1fr}.support-filter-bar .support-search{grid-column:auto}
  .support-table,.support-table tbody,.support-table tr,.support-table td{display:block;width:100%;min-width:0}.support-table thead{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.support-table tbody{display:grid;gap:12px}.support-table tbody tr{padding:11px 14px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow)}.support-table td{display:grid!important;grid-template-columns:minmax(104px,32%) minmax(0,1fr);gap:10px;padding:8px 0;border:0;border-bottom:1px solid var(--line-soft);text-align:left!important}.support-table td:last-child{border-bottom:0}.support-table td::before{content:attr(data-label);color:var(--muted);font-size:.74rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase}.support-table td:nth-child(3){display:grid!important}.support-open-btn{justify-self:start}.support-detail-heading{display:block}.support-detail-badges{justify-content:flex-start;margin-top:10px}
}
@media(max-width:520px){.support-metrics{grid-template-columns:1fr}}

/* V14.8.4 - modalità manutenzione */
.maintenance-screen{min-height:100vh;display:grid;place-items:center;padding-block:clamp(40px,10vh,120px)}
.maintenance-card{width:min(760px,100%);text-align:center;padding:clamp(28px,5vw,52px)}
.maintenance-card h1{margin-bottom:12px}.maintenance-card p{max-width:620px;margin-inline:auto}

/* V14.8.5 - registro utenti leggibile e statistiche comunicazioni */
.audit-filter-panel{overflow:hidden}.audit-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.audit-filter-panel .field{margin:0}.audit-results-heading{display:flex;align-items:center;justify-content:space-between}.audit-event-list{display:grid;gap:14px}.audit-event-card{background:var(--surface,#fff);border:1px solid var(--border,#d9e1ea);border-radius:16px;padding:18px;box-shadow:0 5px 18px rgba(16,42,67,.05)}.audit-event-card header>div{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.audit-event-card h3{margin:8px 0 4px;font-size:1.08rem}.audit-event-card time{font-weight:700}.audit-techline{margin:0;color:var(--muted,#5b6878);overflow-wrap:anywhere}.audit-event-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 0}.audit-event-meta>div{background:var(--surface-soft,#f6f8fb);border-radius:10px;padding:9px 10px;min-width:0}.audit-event-meta dt{font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#5b6878);font-weight:700}.audit-event-meta dd{margin:3px 0 0;overflow-wrap:anywhere}.audit-event-meta small{display:block;margin-top:3px}.audit-event-details{margin-top:12px;border-top:1px solid var(--border,#d9e1ea);padding-top:10px}.audit-event-details>summary{cursor:pointer;font-weight:700;color:var(--blue,#0645ad)}.audit-event-card footer{margin-top:10px;color:var(--muted,#5b6878);overflow-wrap:anywhere}.audit-export-panel{margin-top:18px}.pagination{display:flex;gap:12px;align-items:center;justify-content:center;margin:18px 0;flex-wrap:wrap}
.metric-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0}.metric-kpi{background:var(--surface,#fff);border:1px solid var(--border,#d9e1ea);border-radius:14px;padding:16px;min-width:0}.metric-kpi span,.metric-kpi small{display:block;color:var(--muted,#5b6878)}.metric-kpi strong{display:block;font-size:1.85rem;line-height:1.1;margin:6px 0;overflow-wrap:anywhere}.communication-stats-filter .form-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.volume-chart{height:280px;display:flex;align-items:stretch;gap:8px;padding:18px 8px 30px;border-left:1px solid var(--border,#d9e1ea);border-bottom:1px solid var(--border,#d9e1ea);overflow-x:auto}.volume-chart-group{flex:1 0 42px;min-width:42px;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}.volume-bars{height:210px;width:100%;display:flex;align-items:flex-end;justify-content:center;gap:4px}.volume-bar{display:block;width:min(14px,40%);min-height:2px;border-radius:4px 4px 0 0}.volume-bar.email{background:#1557b0}.volume-bar.whatsapp{background:#1d7d50}.volume-chart-group small{font-size:.68rem;white-space:nowrap;transform:rotate(-35deg);transform-origin:center}.chart-legend{display:flex;justify-content:flex-end;gap:18px;margin-top:12px;font-size:.86rem}.chart-legend span{display:flex;align-items:center;gap:6px}.chart-legend i{width:12px;height:12px;border-radius:3px;display:inline-block}.legend-email{background:#1557b0}.legend-whatsapp{background:#1d7d50}.empty-chart{padding:44px;text-align:center;color:var(--muted,#5b6878)}.stats-daily-table{max-height:560px;overflow:auto}.stats-daily-table thead th{position:sticky;top:0;z-index:1}
@media(max-width:1100px){.audit-filter-grid,.communication-stats-filter .form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-event-meta{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:640px){.audit-filter-grid,.communication-stats-filter .form-grid,.audit-event-meta,.metric-kpi-grid{grid-template-columns:1fr}.audit-event-card{padding:14px}.volume-chart{height:240px}.volume-bars{height:175px}}

/* V14.8.6 - storico versioni e note di release */
.release-history-metrics .metric-card strong.metric-text{font-size:1rem;line-height:1.35;overflow-wrap:anywhere}
.release-history-filter{align-items:end}
.release-history-filter .field{min-width:min(34rem,100%);flex:1 1 28rem}
.release-history-list{display:grid;gap:1rem;margin-top:1rem}
.release-history-card{display:grid;gap:.9rem}
.release-history-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.release-history-head h2{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin:.15rem 0 .35rem}
.release-history-head p{margin:0;max-width:68rem}
.release-history-summary{margin:.1rem 0 0;padding-left:1.25rem;display:grid;gap:.35rem}
.release-history-footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;border-top:1px solid var(--border,#d8dee8);padding-top:.85rem}
.release-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-bottom:1rem}
.release-migration-list{list-style:none;padding:0;margin:0;display:grid;gap:.65rem}
.release-migration-list li{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:.7rem .8rem;border:1px solid var(--border,#d8dee8);border-radius:.65rem}
.release-migration-list code{overflow-wrap:anywhere}
.release-summary{margin-bottom:1rem}
.release-notes h2,.release-notes h3,.release-notes h4{margin-top:1.4rem}
.release-notes>h2:first-of-type{margin-top:0}
.release-notes ul,.release-notes ol{padding-left:1.4rem;display:grid;gap:.35rem}
.release-notes code{overflow-wrap:anywhere}
@media (max-width:760px){.release-history-head,.release-history-footer{align-items:stretch;flex-direction:column}.release-history-footer .btn{width:100%;justify-content:center}.release-meta-grid{grid-template-columns:1fr}.release-migration-list li{align-items:flex-start;flex-direction:column}}

/* V14.8.7 - Security Self Check e hardening Aruba */
.security-metrics{margin-bottom:18px}.security-check-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.security-check-card{display:flex;flex-direction:column;gap:8px;padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.security-check-card.pass{border-left:4px solid #1f8a55}.security-check-card.fail{border-left:4px solid #b42318}.security-check-card>div{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.security-check-card h3{margin:0;font-size:1rem}.security-check-card p{margin:0;color:var(--text-muted)}.security-check-card small{display:block}.security-check-card code{margin-top:auto;color:#526173}.hardening-manual-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.hardening-choice{display:grid;gap:8px;align-items:start}.hardening-choice>label{display:flex;gap:10px;align-items:flex-start;cursor:pointer}.hardening-choice>label>span{display:grid;gap:5px}.hardening-choice a{width:max-content;max-width:100%;font-weight:700;margin-left:28px}.security-self-test-launch,.security-self-test-results{margin-top:18px}.security-self-test-launch .btn{margin-top:10px}
@media (max-width:900px){.security-check-list,.hardening-manual-list{grid-template-columns:1fr}}
@media (max-width:560px){.security-check-card{padding:13px}.hardening-choice{padding:12px}}

/* V14.8.8.2 - header account: nome utente leggibile senza comprimere i comandi. */
@media (min-width:761px){
  .mast .user-area{flex:0 1 auto;flex-wrap:nowrap;min-width:0}
  .mast .support-link{flex:0 0 auto;max-width:none;overflow:visible}
  .mast .profile-link{flex:0 1 auto;min-width:0;max-width:clamp(240px,24vw,360px);overflow:visible;font-size:.96rem}
  .mast .profile-link .profile-name{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .mast .logout-form{flex:0 0 auto}
}
@media (min-width:921px) and (max-width:1220px){
  .mast .profile-link{max-width:clamp(230px,27vw,320px)}
  .mast .user-badge{display:none}
}

/* V14.8.9 - login compatto nel viewport e report con filtri persistenti/presenze. */
.app-public.route-login{min-height:100svh;display:flex;flex-direction:column}
.app-public.route-login>.mast{flex:0 0 auto}
.app-public.route-login>.main{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;padding-top:14px;padding-bottom:14px}
.app-public.route-login>.main>.breadcrumb{display:none}
.app-public.route-login .login-shell{flex:1 1 auto;min-height:0;width:100%;padding-top:0;align-items:center}
.app-public.route-login footer{flex:0 0 auto;margin-top:0}
.participant-toolbar select{min-width:180px}
.participant-table .attendance-select{min-width:190px}
.participant-table [data-athletic-column][hidden]{display:none}
.participant-table .notes-input{min-width:240px}
.participant-row .absence-note-required{border-color:var(--warning)}
.participant-row .attendance-hint{margin-top:4px;color:var(--warning);font-size:.76rem;font-weight:700}
@media (min-width:761px) and (min-height:760px){
  .app-public.route-login{height:100svh;min-height:0}
  .app-public.route-login .mast-inner{min-height:70px;padding:6px 0}
  .app-public.route-login .brand-mark{width:44px;height:44px;flex-basis:44px}
  .app-public.route-login .brand{font-size:1.55rem}
  .app-public.route-login .eyebrow{font-size:.7rem}
  .app-public.route-login .fip-lockup img{height:40px;max-height:40px}
  .app-public.route-login>.main{flex:1 1 0;min-height:0;padding-top:8px;padding-bottom:8px}
  .app-public.route-login .login-shell{flex:1 1 0;min-height:0;padding:0;place-items:center}
  .app-public.route-login .login-entry-grid{align-items:center;gap:16px}
  .app-public.route-login .login-entry-grid>.login-panel{height:auto}
  .app-public.route-login .course-entry-panel{height:auto;padding:16px 22px;gap:7px}
  .app-public.route-login .course-entry-brand-wrap{min-height:52px}
  .app-public.route-login .course-entry-brand img{max-height:52px;width:auto}
  .app-public.route-login .course-entry-panel h2{font-size:1.5rem}
  .app-public.route-login .course-entry-panel p{line-height:1.4}
  .app-public.route-login .course-entry-panel .course-entry-primary{min-height:42px;padding:8px 16px}
  .app-public.route-login .course-entry-links{gap:4px;margin-top:1px}
  .app-public.route-login .login-panel{padding:18px 26px}
  .app-public.route-login .login-panel h1{margin-bottom:8px;font-size:2rem}
  .app-public.route-login .login-panel>p:not(.section-kicker){margin-bottom:12px}
  .app-public.route-login .stack{gap:9px}
  .app-public.route-login .field>label{margin-bottom:4px}
  .app-public.route-login .field input{min-height:44px;padding:7px 9px}
  .app-public.route-login .stack .btn{min-height:44px;padding:7px 14px}
  .app-public.route-login .passkey-feedback{margin:0}
  .app-public.route-login footer{padding:7px 0}
  .app-public.route-login .footer-grid{gap:16px}
  .app-public.route-login .footer-brand img{width:28px;height:28px}
  .app-public.route-login .footer-brand p{font-size:.7rem}
  .app-public.route-login .footer-fip{padding:4px 8px}
  .app-public.route-login .footer-fip img{height:26px}
  .app-public.route-login .footer-service{font-size:.74rem}
}
@media (max-height:759px){
  .app-public.route-login>.main{display:block;padding-top:16px;padding-bottom:22px}
  .app-public.route-login .login-shell{min-height:auto;align-items:start}
}

/* V14.8.9.1 - Report: filtri leggibili, tabella stabile e login a card gemelle. */
.report-form{gap:22px}
.report-form .form-section{overflow:visible}
.report-form .form-section-heading{margin-bottom:20px}
.report-form .form-section-heading p{max-width:92ch}
.participant-section{padding:22px}
.participant-heading{margin-bottom:16px}
.participant-workspace{display:grid;gap:12px;min-width:0}
.participant-filter-panel{position:sticky;top:76px;z-index:8;display:grid;gap:12px;padding:14px;border:1px solid #cfd9e4;border-radius:12px;background:#fff;box-shadow:0 5px 18px rgba(16,42,67,.07)}
.participant-filter-grid{display:grid;grid-template-columns:minmax(260px,1.5fr) minmax(200px,.8fr) minmax(200px,.8fr);gap:12px;align-items:end}
.participant-filter-grid .field{margin:0}
.participant-filter-grid .field>label{margin-bottom:5px;font-size:.8rem;color:#42546a}
.participant-filter-grid input,.participant-filter-grid select{min-width:0;width:100%}
.participant-toolbar-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-top:11px;border-top:1px solid var(--line-soft)}
.participant-bulk-actions,.participant-toolbar-status{display:flex;align-items:center;gap:9px;min-width:0}
.participant-bulk-actions .btn{flex:0 0 auto;min-width:138px;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.participant-toolbar-status{margin-left:auto;justify-content:flex-end;flex-wrap:wrap}
.participant-toolbar-status .page-size-label{display:inline-flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:.82rem;font-weight:700;white-space:nowrap}
.participant-toolbar-status .page-size-label select{width:76px;min-width:76px;min-height:40px;padding-inline:8px}
.participant-toolbar-status .selection-count{margin:0;min-width:102px;text-align:right;white-space:nowrap}
.participant-privacy-hint{padding:9px 12px;border-left:4px solid #d2a000;border-radius:6px;background:#fff9df;color:#4b5665;font-size:.82rem;line-height:1.45}
.participant-privacy-hint strong{color:#27384d}
.participant-wrap{max-height:min(62vh,690px);border-radius:10px;box-shadow:0 4px 16px rgba(16,42,67,.06)}
.participant-table{min-width:100%;table-layout:fixed}
.participant-table th,.participant-table td{vertical-align:middle}
.participant-table th{font-size:.78rem;letter-spacing:.015em}
.participant-table .select-col{width:74px}
.participant-table .name-col{left:74px;width:250px;min-width:250px}
.participant-table .attendance-col{width:190px}
.participant-table .quiz-col{width:120px}
.participant-table .notes-col{width:290px}
.participant-table .athletic-check-col{width:130px}
.participant-table .athletic-number-col{width:105px}
.participant-table .athletic-min-col{width:82px}
.participant-table .athletic-result-col{width:145px}
.participant-table .attendance-select{min-width:0;width:100%}
.participant-table .notes-input{min-width:0;width:100%}
.participant-table input[type=number]{min-width:0;width:100%}
.participant-table td.name-col strong{display:block;line-height:1.25}
.participant-table td.name-col small{display:block;line-height:1.35}
.participant-table .compact-choice{white-space:normal;line-height:1.25}
.participant-pagination{display:flex;align-items:center;justify-content:center;gap:12px;padding:4px 0}
.participant-pagination [data-participant-page-info]{min-width:230px;color:var(--muted);font-size:.85rem;font-weight:700;text-align:center}
.participant-section.athletic-inactive .participant-table{min-width:1020px}
.participant-section.athletic-active .participant-table{min-width:1500px}

@media (max-width:1100px){
  .participant-filter-grid{grid-template-columns:minmax(240px,1.2fr) repeat(2,minmax(175px,.8fr))}
  .participant-toolbar-actions{align-items:stretch;flex-direction:column}
  .participant-toolbar-status{width:100%;margin-left:0;justify-content:space-between}
}
@media (max-width:850px){
  .participant-filter-panel{position:static}
  .participant-filter-grid{grid-template-columns:1fr 1fr}
  .participant-search-field{grid-column:1/-1}
  .participant-bulk-actions{width:100%}
  .participant-bulk-actions .btn{flex:1 1 0;min-width:0}
  .participant-section{padding:16px 12px}
}
@media (max-width:620px){
  .participant-filter-grid{grid-template-columns:1fr}
  .participant-search-field{grid-column:auto}
  .participant-bulk-actions,.participant-toolbar-status{align-items:stretch;flex-direction:column}
  .participant-bulk-actions .btn{width:100%}
  .participant-toolbar-status .page-size-label{width:100%;justify-content:space-between}
  .participant-toolbar-status .selection-count{width:100%;text-align:left}
  .participant-pagination{flex-wrap:wrap}
  .participant-pagination [data-participant-page-info]{order:-1;width:100%;min-width:0}
}

@media (min-width:761px){
  .app-public.route-login .login-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
  .app-public.route-login .login-entry-grid>.login-panel,
  .app-public.route-login .login-entry-grid>.course-entry-panel{width:auto;max-width:none;height:100%}
  .app-public.route-login .course-entry-panel{padding-inline:26px}
}
@media (min-width:761px) and (min-height:760px){
  .app-public.route-login .login-entry-grid{align-items:stretch}
  .app-public.route-login .login-entry-grid>.login-panel,
  .app-public.route-login .login-entry-grid>.course-entry-panel{height:100%}
}

/* Anche i viewport desktop tra 700 e 759 px usano il layout compatto se il contenuto entra. */
@media (min-width:761px) and (min-height:700px) and (max-height:759px){
  .app-public.route-login{height:100svh;min-height:0;overflow:hidden}
  .app-public.route-login .mast-inner{min-height:64px;padding:5px 0}
  .app-public.route-login .brand-mark{width:40px;height:40px;flex-basis:40px}
  .app-public.route-login .brand{font-size:1.45rem}
  .app-public.route-login .eyebrow{font-size:.66rem}
  .app-public.route-login .fip-lockup img{height:36px;max-height:36px}
  .app-public.route-login>.main{display:flex;flex:1 1 0;min-height:0;padding:6px 0}
  .app-public.route-login .login-shell{display:grid;min-height:0;padding:0;place-items:center}
  .app-public.route-login .login-entry-grid{gap:14px;align-items:stretch}
  .app-public.route-login .login-entry-grid>.login-panel,
  .app-public.route-login .login-entry-grid>.course-entry-panel{height:100%}
  .app-public.route-login .course-entry-panel{padding:14px 22px;gap:6px}
  .app-public.route-login .course-entry-brand-wrap{min-height:44px}
  .app-public.route-login .course-entry-brand{min-height:44px;margin:0}
  .app-public.route-login .course-entry-brand img{max-height:44px}
  .app-public.route-login .course-entry-panel h2{font-size:1.38rem}
  .app-public.route-login .course-entry-panel p{line-height:1.32}
  .app-public.route-login .course-entry-panel .course-entry-primary{min-height:40px;padding:7px 14px}
  .app-public.route-login .course-entry-links{gap:2px;margin-top:0}
  .app-public.route-login .login-panel{padding:14px 24px}
  .app-public.route-login .login-panel h1{margin-bottom:5px;font-size:1.8rem}
  .app-public.route-login .login-panel>p:not(.section-kicker){margin-bottom:8px;line-height:1.35}
  .app-public.route-login .stack{gap:6px}
  .app-public.route-login .field>label{margin-bottom:2px}
  .app-public.route-login .field input{min-height:40px;padding:6px 8px}
  .app-public.route-login .stack .btn{min-height:40px;padding:6px 12px}
  .app-public.route-login .passkey-feedback{margin:0;min-height:0}
  .app-public.route-login footer{padding:5px 0}
  .app-public.route-login .footer-grid{gap:12px}
  .app-public.route-login .footer-brand img{width:24px;height:24px}
  .app-public.route-login .footer-brand p{font-size:.66rem}
  .app-public.route-login .footer-fip{padding:3px 7px}
  .app-public.route-login .footer-fip img{height:22px}
  .app-public.route-login .footer-service{font-size:.68rem}
}

/* V14.9.0 - storico mensile aggregato territorio. */
.territory-history-overview{overflow:hidden}
.territory-history-filters{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:14px;align-items:end;margin-bottom:20px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#f8fafc}
.territory-history-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.territory-history-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.territory-history-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}
.territory-history-card h3{margin-bottom:12px}
.territory-chart-scroll{max-width:100%;overflow-x:auto;padding:4px 0 8px;border-bottom:1px solid var(--line-soft)}
.territory-history-svg{display:block;max-width:none;background:#fff}
.territory-grid-line{stroke:#dfe6ee;stroke-width:1}
.territory-month-guide{stroke:#edf1f5;stroke-width:1}
.territory-axis-label,.territory-month-label{fill:var(--muted);font-size:12px;font-family:Arial,Helvetica,sans-serif}
.territory-series{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.territory-point{stroke:#fff;stroke-width:2}
.territory-series-active{stroke:var(--brand-blue);fill:var(--brand-blue)}
.territory-series-renewed{stroke:var(--ok);fill:var(--ok)}
.territory-series-not-renewed{stroke:var(--danger);fill:var(--danger)}
.territory-series-benemeriti{stroke:var(--warning);fill:var(--warning)}
.territory-chart-legend{display:flex;flex-wrap:wrap;gap:12px 18px;margin:12px 0 6px;font-size:.88rem;color:var(--muted)}
.territory-chart-legend span{display:inline-flex;align-items:center;gap:7px}
.territory-legend{display:inline-block;width:20px;height:4px;border-radius:99px;background:currentColor}
.territory-legend.active{color:var(--brand-blue)}
.territory-legend.renewed{color:var(--ok)}
.territory-legend.not-renewed{color:var(--danger)}
.territory-legend.benemeriti{color:var(--warning)}
.territory-history-data{margin-top:10px}
.territory-history-data summary{cursor:pointer;color:var(--blue);font-weight:700}
.territory-history-data .table-wrap{margin-top:10px}
.territory-history-data table{min-width:760px}
.territory-history-note{margin:18px 0 0;padding-top:14px;border-top:1px solid var(--line-soft)}
@media(max-width:1180px){.territory-history-filters{grid-template-columns:repeat(3,minmax(150px,1fr))}.territory-history-grid{grid-template-columns:1fr}}
@media(max-width:760px){.territory-history-filters{grid-template-columns:1fr 1fr}.territory-history-actions{grid-column:1/-1}.territory-history-card{padding:14px}}
@media(max-width:520px){.territory-history-filters{grid-template-columns:1fr}.territory-history-actions{grid-column:auto}.territory-history-actions .btn{width:100%}}
@media(forced-colors:active){.territory-series,.territory-point,.territory-grid-line,.territory-month-guide{stroke:CanvasText}.territory-point{fill:Canvas}.territory-legend{background:CanvasText}}
.rich-editor-shell{border:1px solid #aebdca;border-radius:var(--radius);background:#fff;overflow:hidden}.rich-format-toolbar{display:flex;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid var(--line);background:#f5f8fb}.rich-format-button{min-height:34px;padding:5px 9px;border:1px solid #9db0c1;border-radius:5px;background:#fff;color:var(--ink);font-weight:700;cursor:pointer}.rich-format-button:hover,.rich-format-button:focus-visible{border-color:var(--blue);background:var(--blue-soft)}.rich-editor-surface{min-height:220px;padding:14px;line-height:1.55;outline:none;overflow:auto}.rich-editor-surface:focus{box-shadow:inset 0 0 0 2px var(--blue)}.rich-editor-surface img,.rich-document-preview img{display:block;max-width:100%;height:auto;margin:12px auto}.rich-editor-surface table,.rich-document-preview table{width:100%;border-collapse:collapse}.rich-editor-surface td,.rich-editor-surface th,.rich-document-preview td,.rich-document-preview th{padding:6px;border:1px solid var(--line)}.rich-source-textarea{min-height:260px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}.rich-source-textarea[hidden]{display:none!important}.rich-document-preview{line-height:1.55}.rich-document-preview h1,.rich-document-preview h2,.rich-document-preview h3{margin-top:1.1em}

/* V14.10: navigazione compatta e paginazione server-side */
.section-tabs{display:flex;gap:.35rem;overflow-x:auto;scrollbar-width:thin;margin:0 0 1rem;padding:.25rem;border:1px solid var(--border,#d8dee8);border-radius:.75rem;background:var(--surface,#fff)}
.section-tabs a{display:inline-flex;align-items:center;min-height:2.5rem;padding:.55rem .85rem;border-radius:.55rem;white-space:nowrap;text-decoration:none;font-weight:650}
.section-tabs a[aria-current="page"]{background:var(--surface-alt,#eef3f8);box-shadow:inset 0 0 0 1px var(--border,#d8dee8)}
.pagination-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin:1rem 0}
.pagination-summary{font-size:.92rem;color:var(--muted,#5c6675)}
.pagination-links{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap}
.pagination-page,.pagination-current{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;min-height:2.25rem;padding:.3rem .5rem;border-radius:.45rem;text-decoration:none}
.pagination-page{border:1px solid var(--border,#d8dee8)}
.pagination-current{font-weight:700;background:var(--surface-alt,#eef3f8);border:1px solid var(--border,#d8dee8)}
@media(max-width:720px){.pagination-bar{align-items:flex-start;flex-direction:column}.section-tabs{margin-inline:-.2rem}}

/* V14.11.0.3 - coerenza layout form e separazione azioni.
   Correzione trasversale e DB-neutral: ripristina gli hook di layout già presenti
   nel markup senza modificare campi, submit, endpoint o logica applicativa. */
.form-grid > .full{grid-column:1/-1}
.form-grid > .notice{margin-bottom:0}
.form-grid > .field > .btn{margin-top:8px}
.choice-card > div{display:grid;gap:8px;width:100%;padding:16px}
.choice-card > div > p{margin:4px 0 0}
.choice-card > div > small + p{margin-top:10px}

/* Form compatti usati in hero, assegnazioni e azioni operative. */
.inline-form{display:inline-flex;max-width:100%;flex-wrap:wrap;align-items:flex-end;gap:10px;margin:0}
.inline-form select,.inline-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]){min-width:0;min-height:44px;padding:9px 10px;border:2px solid #7d8998;border-radius:3px;background:#fff;color:var(--ink)}
.inline-form select:focus,.inline-form input:not([type=hidden]):focus{outline:3px solid var(--yellow);outline-offset:1px;border-color:var(--blue)}

/* Gruppi di scelte: il label intero resta un target comodo e separato. */
.choice-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:8px}
.choice-row .compact-choice{min-height:32px;padding-block:4px}

/* Tabelle presenti in sezioni che non usano il wrapper storico .table-wrap. */
.table-scroll{width:100%;max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff;-webkit-overflow-scrolling:touch}
.table-scroll table{width:100%;border-collapse:collapse}
.table-scroll th,.table-scroll td{padding:12px 13px;border-bottom:1px solid var(--line-soft);text-align:left;vertical-align:top}
.table-scroll th{background:#eef3f8;color:#26364b;font-size:.9rem;white-space:nowrap}
.table-scroll tbody tr:last-child td{border-bottom:0}
.table-scroll tbody tr:hover{background:#f9fbfd}
.table-actions-stack{display:grid;gap:8px;justify-items:start}

/* Separazione tra gruppi di campi e relative azioni / dettagli espandibili. */
.filter-form > .actions{margin-top:16px}
.settings-disclosure{margin-top:16px;padding-top:12px;border-top:1px solid var(--line-soft)}
.settings-disclosure > .form-grid{margin-top:14px}
.security-repair-panel form{display:grid;gap:12px}
.release-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}

@media(max-width:760px){
  .form-grid > .full{grid-column:auto}
  .inline-form{width:100%;align-items:stretch}
  .inline-form > select,.inline-form > input:not([type=hidden]):not([type=checkbox]):not([type=radio]),.inline-form > .btn{width:100%}
  .table-scroll table{min-width:680px}
  .release-badges{justify-content:flex-start}
}

/* V14.11.0.4 - action bar nel normale flusso: evita sovrapposizioni e focus oscurato. */
.sticky-actions{position:static;z-index:auto;bottom:auto;flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;background:#fff;box-shadow:var(--shadow);backdrop-filter:none}
.form-shell>.sticky-actions{margin-top:0}

/* V14.13.0.4 - separazione coerente tra contenuti, campi e azioni.
   Audit statico di tutti i PHP: evita pulsanti attaccati a select/input/testo nei form
   non strutturati, mantenendo invariati endpoint, submit e logica applicativa. */
form.panel{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
form.panel>h1,form.panel>h2,form.panel>h3,form.panel>p,form.panel>.notice{margin-bottom:0}
form.panel>.btn,form.panel>.linkbtn{justify-self:start}
.form-grid>.field>.btn{margin-top:12px}
.compact-delete-form{gap:10px}
.app-public.route-login .stack>.btn{margin-top:4px}
.security-repair-panel form>.btn{margin-top:2px}

form.danger-zone:not(.panel){display:grid;grid-template-columns:minmax(0,1fr);gap:12px}
form.danger-zone:not(.panel)>.btn,form.danger-zone:not(.panel)>.linkbtn{justify-self:start}

/* I gruppi azione che seguono contenuti descrittivi restano chiaramente separati. */
.panel>p+.actions,.panel>.notice+.actions,.panel>.definition-grid+.actions,.panel>.table-wrap+.actions,.panel>.table-scroll+.actions{margin-top:16px}

@media(max-width:760px){
  form.panel>.btn,form.panel>.linkbtn{width:100%;justify-self:stretch}
}

/* V14.13.0.5 - leggibilita date ticket e appartenenza visiva delle azioni finali.
   La data di apertura non eredita piu le regole di spezzatura aggressive della tabella.
   Le sticky-actions restano nel normale flusso ma diventano un gruppo azioni "volante",
   senza riquadro che possa essere scambiato per parte della sezione successiva. */
.support-table .support-opened{
  width:124px;
  min-width:124px;
  overflow-wrap:normal;
  word-break:keep-all;
}
.support-opened-time{
  display:inline-grid;
  gap:3px;
  min-width:max-content;
  justify-items:start;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
  font-variant-numeric:tabular-nums;
}
.support-opened-time strong,.support-opened-time small{
  display:block;
  white-space:nowrap;
  overflow-wrap:normal;
  word-break:keep-all;
}

.sticky-actions{
  position:static;
  z-index:auto;
  bottom:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  margin:18px 0 28px;
}
.form-shell>.sticky-actions{
  margin-top:-8px;
  margin-bottom:28px;
}
.panel>.sticky-actions{
  margin-bottom:0;
}

@media(max-width:760px){
  .support-table .support-opened{
    width:100%;
    min-width:0;
    grid-template-columns:minmax(104px,32%) minmax(124px,1fr);
  }
  .support-opened-time{justify-self:start}
  .sticky-actions{align-items:stretch}
}

/* V14.14 - Eventi multi-giornata, formatori e selezioni più leggibili. */
.appointment-person-card:has(>input:checked){border-color:#5276a5;background:#f4f8fd;box-shadow:0 0 0 1px rgba(29,66,138,.10)}
.event-days{display:grid;gap:10px;margin-top:18px}
.event-day-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(220px,1fr) auto;gap:12px;align-items:end;padding:14px;border:1px solid var(--line-soft);border-radius:12px;background:#fafbfd}
.event-day-row .field{margin:0}
.trainer-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
@media (min-width:1101px){.participant-filter-grid{grid-template-columns:minmax(240px,1.35fr) repeat(3,minmax(175px,.78fr))}}
@media (max-width:760px){.event-day-row{grid-template-columns:1fr}.event-day-row .btn{width:100%}}

/* V14.15.0 - rifiniture MFA, Tesserati e azioni distruttive. */
.recovery-code-confirm{margin-top:1.25rem}
.ref-renewal{display:block;margin-top:6px;max-width:100%}
.ref-renewal .status{display:inline-block;max-width:138px;overflow:hidden;text-overflow:ellipsis;vertical-align:top}

/* Lo stato tesseramento vive nella colonna Tessera: nessuna nuova colonna orizzontale. */
.referees-table{min-width:1040px}
.referees-table .ref-col-person,.referees-table .ref-person{min-width:230px;width:24%}
.referees-table .ref-col-license,.referees-table .ref-license{min-width:140px;width:14%}
.referees-table .ref-col-role,.referees-table .ref-role{min-width:275px;width:27%}
.referees-table .ref-col-medical,.referees-table .ref-medical{min-width:180px;width:17%}
.referees-table .ref-col-contact,.referees-table .ref-contact{min-width:190px;width:18%}

@media(max-width:760px){
  .referees-table{min-width:990px}
  .referees-table .ref-col-person,.referees-table .ref-person{min-width:220px;width:220px}
  .referees-table .ref-col-license,.referees-table .ref-license{min-width:135px;width:135px}
  .referees-table .ref-col-role,.referees-table .ref-role{min-width:265px;width:265px}
  .referees-table .ref-col-medical,.referees-table .ref-medical{min-width:175px;width:175px}
  .referees-table .ref-col-contact,.referees-table .ref-contact{min-width:185px;width:185px}
}

/* V14.16.0 - tema Sistema / Chiaro / Scuro con rispetto di prefers-color-scheme. */
html[data-theme="light"]{color-scheme:light}
html[data-theme="dark"]{color-scheme:dark}
html[data-theme="system"]{color-scheme:light dark}
.theme-quick-form{margin:0;flex:0 0 auto}
.theme-quick-form select{min-height:36px;max-width:112px;padding:6px 30px 6px 10px;border:1px solid rgba(255,255,255,.45);border-radius:7px;background:#fff;color:#17304d;font-weight:700;cursor:pointer}
.theme-quick-form select:focus-visible{outline:3px solid var(--brand-gold);outline-offset:2px}
.theme-choice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:16px 0}
.theme-choice-card{display:flex;align-items:flex-start;gap:10px;min-height:110px;padding:16px;border:2px solid var(--line);border-radius:12px;background:var(--brand-surface,#fff);cursor:pointer}
.theme-choice-card:hover{border-color:#7da5cd;background:var(--blue-soft)}
.theme-choice-card:has(input:checked){border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(10,94,176,.14)}
.theme-choice-card input{margin-top:3px}
.theme-choice-card span{display:grid;gap:5px}.theme-choice-card strong{font-size:1rem}.theme-choice-card small{line-height:1.4}
@media(max-width:760px){.theme-choice-grid{grid-template-columns:1fr}.theme-choice-card{min-height:0}.theme-quick-form select{max-width:104px}}
@media(max-width:430px){.theme-quick-form select{max-width:96px;padding-left:8px;font-size:.82rem}}

html[data-theme-resolved="dark"]{
  --brand-navy:#071b35;
  --brand-navy-2:#0a284b;
  --brand-blue:#6db8ff;
  --brand-blue-hover:#8ac7ff;
  --brand-gold:#f2c94c;
  --brand-gold-ink:#ffe08a;
  --brand-green:#4fc58d;
  --brand-bg:#08111d;
  --brand-surface:#101c2b;
  --brand-line:#34465d;
  --brand-muted:#aebdcd;
  --blue:#76bdff;
  --blue-dark:#9bd0ff;
  --blue-deep:#071b35;
  --blue-soft:#132b43;
  --yellow:#f2c94c;
  --ink:#edf4fc;
  --muted:#aebdcd;
  --line:#34465d;
  --line-soft:#26384b;
  --surface:#101c2b;
  --soft:#08111d;
  --soft-2:#0c1826;
  --ok:#4fc58d;
  --ok-soft:#123626;
  --danger:#ff847c;
  --danger-soft:#3a191b;
  --warning:#f2c66d;
  --warning-soft:#3a2e16;
  --info:#78bfff;
  --info-soft:#112e47;
  --a11y-focus-dark:#ffe083;
  --a11y-focus-light:#06182e;
  --a11y-interactive-border:#71849b;
  --border:#34465d;
  --surface-soft:#0c1826;
  --text-muted:#aebdcd;
  background:#08111d;
}
html[data-theme-resolved="dark"] body{background:var(--brand-bg);color:var(--ink)}
html[data-theme-resolved="dark"] h1,
html[data-theme-resolved="dark"] h2,
html[data-theme-resolved="dark"] h3{color:#f3f7fc}
html[data-theme-resolved="dark"] a{color:#8ac7ff}
html[data-theme-resolved="dark"] .mast{background:linear-gradient(118deg,#041326 0%,#071b35 48%,#0b3158 100%)}
html[data-theme-resolved="dark"] .nav{background:#0d1825;border-color:#2d4055;box-shadow:2px 0 14px rgba(0,0,0,.28)}
html[data-theme-resolved="dark"] .nav-links a{color:#dce8f5}
html[data-theme-resolved="dark"] .nav-links a:hover,
html[data-theme-resolved="dark"] .nav-links a:focus-visible{background:#16283a;color:#fff}
html[data-theme-resolved="dark"] .nav-links a[aria-current=page]{background:#18314a;color:#fff}
html[data-theme-resolved="dark"] .nav-project{border-color:#34465d;background:#101c2b;color:#eaf2fb}
html[data-theme-resolved="dark"] .nav-project-meta{border-color:#34465d}
html[data-theme-resolved="dark"] .page-hero{border-color:#31465e;background:linear-gradient(120deg,#101c2b 0%,#0c1826 100%)}
html[data-theme-resolved="dark"] .panel,
html[data-theme-resolved="dark"] .form-section,
html[data-theme-resolved="dark"] .table-wrap,
html[data-theme-resolved="dark"] .toolbar,
html[data-theme-resolved="dark"] .selection-toolbar,
html[data-theme-resolved="dark"] .confirmation-bar,
html[data-theme-resolved="dark"] .metric-card,
html[data-theme-resolved="dark"] .template-card,
html[data-theme-resolved="dark"] .privacy-icon-card,
html[data-theme-resolved="dark"] .security-check-card,
html[data-theme-resolved="dark"] .audit-event-card{border-color:var(--line);background:var(--brand-surface);color:var(--ink);box-shadow:0 5px 20px rgba(0,0,0,.18)}
html[data-theme-resolved="dark"] .panel-heading{border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .metric-card:hover{border-color:#4b617a;box-shadow:0 12px 32px rgba(0,0,0,.24)}
html[data-theme-resolved="dark"] .list-group,
html[data-theme-resolved="dark"] .list-item,
html[data-theme-resolved="dark"] .definition-grid>div,
html[data-theme-resolved="dark"] .form-section-heading{border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .list-item{color:var(--ink)}
html[data-theme-resolved="dark"] .list-item:hover{background:#132337}
html[data-theme-resolved="dark"] .choice-card,
html[data-theme-resolved="dark"] .person-card,
html[data-theme-resolved="dark"] .attachment-card,
html[data-theme-resolved="dark"] .event-day-row,
html[data-theme-resolved="dark"] .hardening-choice{border-color:var(--line);background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .choice-card label:hover,
html[data-theme-resolved="dark"] .person-card:hover,
html[data-theme-resolved="dark"] .appointment-person-card:has(>input:checked){background:#142b43}
html[data-theme-resolved="dark"] .field input:not([type=checkbox]):not([type=radio]),
html[data-theme-resolved="dark"] .field select,
html[data-theme-resolved="dark"] .field textarea,
html[data-theme-resolved="dark"] .selection-toolbar input[type=search],
html[data-theme-resolved="dark"] table input:not([type=checkbox]):not([type=radio]),
html[data-theme-resolved="dark"] table select,
html[data-theme-resolved="dark"] table textarea,
html[data-theme-resolved="dark"] .field input[type=file]{border-color:#6f8196;background:#0a1522;color:var(--ink)}
html[data-theme-resolved="dark"] input:disabled,
html[data-theme-resolved="dark"] select:disabled,
html[data-theme-resolved="dark"] textarea:disabled{background:#13202e!important;color:#9eacba!important;opacity:1}
html[data-theme-resolved="dark"] .table-wrap th,
html[data-theme-resolved="dark"] table thead th{background:#162536;color:#d9e6f3;border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .table-wrap td,
html[data-theme-resolved="dark"] table td{border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .table-wrap tbody tr:hover,
html[data-theme-resolved="dark"] table tbody tr:hover{background:#112236}
html[data-theme-resolved="dark"] pre,
html[data-theme-resolved="dark"] code,
html[data-theme-resolved="dark"] .message-snippet,
html[data-theme-resolved="dark"] .totp-manual .secret-code,
html[data-theme-resolved="dark"] .recovery-code-grid code{border-color:var(--line);background:#0b1725;color:#dcecff}
html[data-theme-resolved="dark"] .file-drop,
html[data-theme-resolved="dark"] .editor-toolbar{border-color:#46617d;background:#0e2032;color:var(--muted)}
html[data-theme-resolved="dark"] .token-button,
html[data-theme-resolved="dark"] .emoji-button{border-color:#607c98;background:#101c2b;color:#9bd0ff}
html[data-theme-resolved="dark"] .token-button:hover,
html[data-theme-resolved="dark"] .emoji-button:hover{background:#17314a}
html[data-theme-resolved="dark"] .date-tile,
html[data-theme-resolved="dark"] .privacy-icon{border-color:#3f5871;background:#132b43;color:#9bd0ff}
html[data-theme-resolved="dark"] .notice{border-color:#365c7d;background:#112e47;color:#dcecff}
html[data-theme-resolved="dark"] .notice.success{border-color:#2d6b50;background:#123626;color:#d8f5e7}
html[data-theme-resolved="dark"] .notice.error{border-color:#824446;background:#3a191b;color:#ffd9d6}
html[data-theme-resolved="dark"] .notice.warning{border-color:#79602d;background:#3a2e16;color:#ffe9b8}
html[data-theme-resolved="dark"] .status{background:#253447;color:#d8e2ed}
html[data-theme-resolved="dark"] .status.ok{background:#123626;color:#a9e7c8}
html[data-theme-resolved="dark"] .status.info{background:#112e47;color:#a9d8ff}
html[data-theme-resolved="dark"] .status.muted{background:#202d3b;color:#b5c1ce}
html[data-theme-resolved="dark"] .status.warning,
html[data-theme-resolved="dark"] .status.warn{background:#3a2e16;color:#ffe0a0}
html[data-theme-resolved="dark"] .status.fail{background:#3a191b;color:#ffb7b2}
html[data-theme-resolved="dark"] .btn{border-color:#0b63b6;background:#0b63b6;color:#fff}
html[data-theme-resolved="dark"] .btn:hover{border-color:#0e75d1;background:#0e75d1}
html[data-theme-resolved="dark"] .btn.secondary,
html[data-theme-resolved="dark"] .btn.tertiary{border-color:#60758c;background:#101c2b;color:#a9d7ff}
html[data-theme-resolved="dark"] .btn.secondary:hover,
html[data-theme-resolved="dark"] .btn.tertiary:hover{border-color:#75a7d5;background:#142b43}
html[data-theme-resolved="dark"] .sticky-actions{background:transparent}
html[data-theme-resolved="dark"] .login-panel{border-color:#34465d;background:#101c2b;color:var(--ink);box-shadow:0 18px 46px rgba(0,0,0,.34)}
html[data-theme-resolved="dark"] .course-entry-panel{border-color:#34465d;background:linear-gradient(180deg,#101c2b 0%,#0b1725 100%)}
html[data-theme-resolved="dark"] .child-summary{background:#332b16;color:#ffe8a8}
html[data-theme-resolved="dark"] .participant-row.disabled{background:#111c28;color:#a9b5c3}
html[data-theme-resolved="dark"] .phone-preview{border-color:#0b0e13;background:#202a25}
html[data-theme-resolved="dark"] .audit-event-meta>div{background:#0b1725}
html[data-theme-resolved="dark"] footer{border-color:#2d4055;background:#0b1623;color:#aebdcd}
html[data-theme-resolved="dark"] .footer-fip{background:#071b35}
html[data-theme-resolved="dark"] .theme-choice-card{border-color:#40536a;background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .theme-choice-card:hover{border-color:#6c8fb2;background:#142b43}
html[data-theme-resolved="dark"] .theme-choice-card:has(input:checked){border-color:#6db8ff;box-shadow:0 0 0 2px rgba(109,184,255,.18)}
html[data-theme-resolved="dark"] .theme-quick-form select{border-color:#60758c;background:#0d1927;color:#eef6ff}
html[data-theme-resolved="dark"] ::selection{background:#235f91;color:#fff}
/* V14.17.0 - partecipazione preventiva eventi. */
.report-stats.participation-stats{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0 18px;padding:0;border:0}.participation-stats>span{padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);text-align:center;color:var(--muted)}.participation-stats>span strong{display:block;font-size:1.35rem;line-height:1.15;color:var(--blue)}
.participation-table-wrap table{min-width:920px}.table-inline-actions{display:inline-flex;flex-wrap:wrap;gap:5px;margin:0 7px 4px 0}.table-inline-actions .table-action{white-space:nowrap}
.public-participation-panel{max-width:900px;margin-inline:auto}.sensitive-response-field{box-shadow:none}.sensitive-response-field[hidden]{display:none!important}
.participation-sensitive-warning{border-left:4px solid var(--warning)}
@media(max-width:900px){.report-stats.participation-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.participation-stats>span:last-child{grid-column:1/-1}}
@media(max-width:520px){.report-stats.participation-stats{grid-template-columns:1fr}.participation-stats>span:last-child{grid-column:auto}}
html[data-theme-resolved="dark"] .participation-stats>span{border-color:var(--line);background:#0c1826;color:var(--muted)}


/* V14.19.0 - Eventi: flusso lineare, filtri scalabili e selezioni separate. */
.event-form .form-section>.form-section-heading{margin-bottom:22px}
.event-form .form-section>*+*{margin-top:18px}
.event-form .form-section>.form-section-heading+*{margin-top:0}
.event-subsection{margin-top:26px!important;padding-top:22px;border-top:1px solid var(--line-soft)}
.event-subsection-heading{display:grid;gap:4px;margin:0}
.event-subsection-heading h3,.event-subsection-heading p{margin:0}
.event-subsection-heading p{color:var(--muted)}
.event-days{margin-top:14px}
.event-section-actions{display:flex;align-items:center;gap:10px;margin-top:14px}
.event-person-picker{display:grid;gap:16px;min-width:0}
.event-picker-filters{display:grid;grid-template-columns:minmax(260px,1.45fr) repeat(3,minmax(150px,.75fr));gap:14px;align-items:end;padding:16px}
.event-picker-filters .field{min-width:0}
.event-picker-filters .field>label{margin-bottom:6px}
.event-picker-filters select,.event-picker-filters input[type=search]{width:100%;min-height:42px}
.event-picker-search{grid-column:span 2}
.event-picker-bulk-actions{display:flex;align-items:flex-end;min-height:42px}
.event-picker-summary{display:flex;align-items:center;min-height:26px;color:var(--muted);font-size:.9rem}
.event-picker-candidates{max-height:390px;overflow:auto;align-content:start;padding:4px 6px 4px 2px;scrollbar-gutter:stable}
.event-picker-candidates.is-empty{min-height:0}
.event-picker-selected{margin-top:6px;padding-top:22px;border-top:1px solid var(--line-soft)}
.event-picker-selected-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px}
.event-picker-selected-heading h3,.event-picker-selected-heading p{margin:0}
.event-picker-selected-heading p{margin-top:4px;color:var(--muted)}
.event-picker-selected-heading>strong{flex:0 0 auto;padding:6px 10px;border:1px solid var(--line);border-radius:999px;background:var(--soft-2);font-size:.86rem}
.event-selected-table-wrap{margin-top:0!important}
.event-selected-table{min-width:680px}
.event-selected-table td:first-child{min-width:190px}
.event-selected-table td:nth-child(2){min-width:230px}
.event-selected-table .event-picker-remove{white-space:nowrap}
.empty-state.compact{padding:22px;margin:0;min-height:0}
.participation-send-form>.btn,#documenti-evento form.form-shell.compact>.btn:last-child{margin-top:14px}
@media(max-width:1100px){.event-picker-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.event-picker-search{grid-column:1/-1}}
@media(max-width:760px){.event-picker-filters{grid-template-columns:1fr;padding:14px}.event-picker-search{grid-column:auto}.event-picker-bulk-actions,.event-picker-bulk-actions .btn,.event-section-actions,.event-section-actions .btn{width:100%}.event-picker-selected-heading{align-items:stretch;flex-direction:column}.event-picker-selected-heading>strong{align-self:flex-start}.event-picker-candidates{max-height:330px}.event-selected-table{min-width:620px}}

/* V14.19.1 - rifiniture trasversali: action bar riconoscibili e choice-card leggibili. */
.sticky-actions{
  position:static;
  z-index:auto;
  bottom:auto;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:12px;
  margin:22px 0 30px;
  padding:14px 16px;
  border:1px solid var(--line);
  border-left:4px solid var(--blue);
  border-radius:var(--radius-lg);
  background:var(--surface);
  box-shadow:var(--shadow);
  backdrop-filter:none;
}
.form-shell>.sticky-actions{margin-top:4px;margin-bottom:30px}
.panel>.sticky-actions{margin-bottom:0}
html[data-theme-resolved="dark"] .sticky-actions{border-color:var(--line);border-left-color:var(--blue);background:var(--surface);box-shadow:0 4px 14px rgba(0,0,0,.2)}

/* Alcune choice-card sono esse stesse <label>: anche queste devono avere respiro interno. */
label.choice-card{display:flex;align-items:flex-start;gap:9px;padding:14px;cursor:pointer}
label.choice-card>input{flex:0 0 auto;margin-top:3px}
label.choice-card>span{display:block;min-width:0;flex:1}
label.choice-card:hover{background:var(--blue-soft)}
.choice-card>label{min-width:0}
.choice-card strong,.choice-card small{line-height:1.4}

/* I picker Eventi non troncano piu i risultati: l'altezza resta contenuta dallo scroll interno. */
.event-picker-candidates{max-height:390px;overflow:auto;align-content:start;padding:8px;scrollbar-gutter:stable}
.event-picker-candidates .person-card{scroll-margin-block:8px}

@media(max-width:760px){
  .sticky-actions{padding:14px;align-items:stretch}
  .event-picker-candidates{max-height:360px}
}

/* V14.20.0 - reinvio selettivo e separazione note / dati particolari. */
.participation-resend-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}
.participation-resend-actions .hint{margin:0}
.participation-table-wrap .select-col{width:44px;min-width:44px;text-align:center}
.participation-table-wrap .select-col input[type=checkbox]{width:18px;height:18px}
.participation-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.participation-data-legend{margin:18px 0}
.participation-row-actions .sensitive-action{border-color:var(--warning);font-weight:700}
.response-note-box{padding:16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft);line-height:1.55;white-space:normal}
html[data-theme-resolved="dark"] .response-note-box{background:#0c1826;border-color:var(--line)}
@media(max-width:640px){.participation-resend-actions{align-items:stretch;flex-direction:column}.participation-resend-actions .btn{width:100%}}


/* V14.22.0.1 - controlli data/ora contenuti nel viewport su mobile, incluso Safari/iOS. */
@media(max-width:760px){
  .field input[type=date],
  .field input[type=datetime-local],
  .field input[type=month],
  .field input[type=week],
  .field input[type=time],
  table input[type=date],
  table input[type=datetime-local],
  table input[type=month],
  table input[type=week],
  table input[type=time],
  .inline-form input[type=date],
  .inline-form input[type=datetime-local],
  .inline-form input[type=month],
  .inline-form input[type=week],
  .inline-form input[type=time]{
    display:block;
    width:100%;
    min-width:0;
    max-width:100%;
    inline-size:100%;
    min-inline-size:0;
    max-inline-size:100%;
  }

  input[type=date]::-webkit-date-and-time-value,
  input[type=datetime-local]::-webkit-date-and-time-value,
  input[type=month]::-webkit-date-and-time-value,
  input[type=week]::-webkit-date-and-time-value,
  input[type=time]::-webkit-date-and-time-value{
    width:100%;
    min-width:0;
  }

  input[type=date]::-webkit-datetime-edit,
  input[type=datetime-local]::-webkit-datetime-edit,
  input[type=month]::-webkit-datetime-edit,
  input[type=week]::-webkit-datetime-edit,
  input[type=time]::-webkit-datetime-edit{
    min-width:0;
    overflow:hidden;
  }
}

/* V14.22.0.2 - rifinitura tema scuro: contrasto KPI, superfici operative e logo FIP login. */
.course-fip-logo{display:block}
.course-fip-logo-dark{display:none}
html[data-theme-resolved="dark"] .course-fip-logo-light{display:none}
html[data-theme-resolved="dark"] .course-fip-logo-dark{display:block}

html[data-theme-resolved="dark"]{
  --surface-alt:#162536;
}

/* Panoramica e contatori: nessun valore usa il navy scuro su superfici scure. */
html[data-theme-resolved="dark"] .metric-value,
html[data-theme-resolved="dark"] .metrics-grid .metric-card strong,
html[data-theme-resolved="dark"] .province-count,
html[data-theme-resolved="dark"] .province-group-count strong{color:#9bd0ff}
html[data-theme-resolved="dark"] .metric-link{color:#8ac7ff}
html[data-theme-resolved="dark"] .page-hero-icon,
html[data-theme-resolved="dark"] .metric-card-icon{border-color:#3f5871;background:#132b43;color:#9bd0ff;box-shadow:none}
html[data-theme-resolved="dark"] .nav-icon{color:#9bb7d2}
html[data-theme-resolved="dark"] .nav-links a:hover .nav-icon,
html[data-theme-resolved="dark"] .nav-links a:focus-visible .nav-icon,
html[data-theme-resolved="dark"] .nav-links a[aria-current=page] .nav-icon{color:#9bd0ff}

/* Superfici che nelle release precedenti conservavano un bianco hard-coded. */
html[data-theme-resolved="dark"] .filter-bar,
html[data-theme-resolved="dark"] .participant-toolbar,
html[data-theme-resolved="dark"] .participant-filter-panel,
html[data-theme-resolved="dark"] .territory-history-filters,
html[data-theme-resolved="dark"] .territory-history-card,
html[data-theme-resolved="dark"] .table-scroll{border-color:var(--line);background:var(--brand-surface);color:var(--ink);box-shadow:0 5px 20px rgba(0,0,0,.16)}
html[data-theme-resolved="dark"] .participant-table .sticky-col{background:var(--brand-surface)}
html[data-theme-resolved="dark"] .participant-table th.sticky-col{background:#162536}
html[data-theme-resolved="dark"] .table-scroll th{background:#162536;color:#d9e6f3;border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .table-scroll td{border-color:var(--line-soft)}
html[data-theme-resolved="dark"] .table-scroll tbody tr:hover{background:#112236}

/* Territorio e badge: mantengono semantica e gerarchia, senza card chiare residue. */
html[data-theme-resolved="dark"] .province-badge{border-color:#46617d;background:#132b43;color:#cfe7ff}
html[data-theme-resolved="dark"] .province-badge strong{background:#0a284b;color:#fff}
html[data-theme-resolved="dark"] .province-badge.muted{border-color:#40536a;background:#202d3b;color:#b5c1ce}
html[data-theme-resolved="dark"] .territory-context{border-color:#40536a;border-left-color:var(--brand-blue);background:#0c1826;color:var(--ink)}
html[data-theme-resolved="dark"] .territory-context.prominent,
html[data-theme-resolved="dark"] .province-overview-item,
html[data-theme-resolved="dark"] .province-group-count,
html[data-theme-resolved="dark"] .province-scope-choice{border-color:#40536a;background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .province-overview-item:hover,
html[data-theme-resolved="dark"] .province-overview-item:focus-within,
html[data-theme-resolved="dark"] .province-group-count:hover,
html[data-theme-resolved="dark"] .province-group-count:focus-visible,
html[data-theme-resolved="dark"] .province-scope-choice:has(input:checked){border-color:#6c8fb2;background:#142b43}
html[data-theme-resolved="dark"] .province-scope-choice strong{color:#dcecff}
html[data-theme-resolved="dark"] .selection-toolbar select[data-filter-province],
html[data-theme-resolved="dark"] .selection-toolbar select[data-filter-participant-province]{border-color:#71849b;background:#0a1522;color:var(--ink)}

/* Componenti operativi e avvisi specialistici. */
html[data-theme-resolved="dark"] .recovery-panel{border-color:#79602d;background:#302816;color:#ffe9b8}
html[data-theme-resolved="dark"] .ticket-message-internal{border-color:#79602d;background:#302816;color:var(--ink)}
html[data-theme-resolved="dark"] .participant-privacy-hint{border-left-color:#f2c94c;background:#302816;color:#ffe9b8}
html[data-theme-resolved="dark"] .inline-form select,
html[data-theme-resolved="dark"] .inline-form input:not([type=hidden]):not([type=checkbox]):not([type=radio]){border-color:#71849b;background:#0a1522;color:var(--ink)}
html[data-theme-resolved="dark"] .appointment-person-card:has(>input:checked){border-color:#6c8fb2;background:#142b43;box-shadow:0 0 0 1px rgba(109,184,255,.12)}
html[data-theme-resolved="dark"] .event-day-row{border-color:var(--line-soft);background:#0d1927}

/* Grafici territoriali: la tela diventa scura insieme alle griglie, non solo il contenitore. */
html[data-theme-resolved="dark"] .territory-history-svg{background:#0b1725}
html[data-theme-resolved="dark"] .territory-grid-line{stroke:#34465d}
html[data-theme-resolved="dark"] .territory-month-guide{stroke:#26384b}
html[data-theme-resolved="dark"] .territory-point{stroke:#0b1725}

/* Editor HTML: toolbar coerente con il tema; il foglio di composizione resta volutamente chiaro
   per non alterare la resa visiva dei template e-mail/documento. */
html[data-theme-resolved="dark"] .rich-editor-shell{border-color:#46617d;background:#101c2b}
html[data-theme-resolved="dark"] .rich-format-toolbar{border-color:var(--line);background:#0d1927}
html[data-theme-resolved="dark"] .rich-format-button{border-color:#607c98;background:#101c2b;color:#dcecff}
html[data-theme-resolved="dark"] .rich-format-button:hover,
html[data-theme-resolved="dark"] .rich-format-button:focus-visible{border-color:#75a7d5;background:#142b43}
html[data-theme-resolved="dark"] .rich-editor-surface{background:#fff;color:#1c2735}

@media(max-width:760px){
  html[data-theme-resolved="dark"] .support-table tbody tr{border-color:var(--line);background:var(--brand-surface);box-shadow:0 3px 12px rgba(0,0,0,.18)}
  html[data-theme-resolved="dark"] .support-table tbody tr:hover{background:#132337}
}


/* V14.22.0.2 - superfici tecniche che richiedono una zona bianca funzionale. */
html[data-theme-resolved="dark"] .totp-qr-card{border-color:#40536a;background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .totp-qr{padding:10px;border-radius:8px;background:#fff}

/* V14.23.0.1 - login: contenuti della card iscrizione corsi distribuiti sull'intera altezza.
   La dimensione esterna della card resta governata dalla griglia gemella con la card di accesso. */
@media (min-width:761px){
  .app-public.route-login .course-entry-panel{
    justify-content:flex-start;
    gap:15px;
    padding-block:26px;
  }
  .app-public.route-login .course-entry-brand-wrap{
    min-height:88px;
    align-items:center;
  }
  .app-public.route-login .course-entry-brand{
    min-height:78px;
    width:100%;
    align-items:center;
  }
  .app-public.route-login .course-entry-brand img{
    width:min(250px,86%);
    max-height:82px;
  }
  .app-public.route-login .course-entry-panel .section-kicker{
    margin-top:2px;
    font-size:.84rem;
    letter-spacing:.055em;
  }
  .app-public.route-login .course-entry-panel h2{
    font-size:clamp(1.65rem,2.1vw,2rem);
    line-height:1.16;
  }
  .app-public.route-login .course-entry-panel>p:not(.section-kicker){
    font-size:1.02rem;
    line-height:1.58;
    max-width:38rem;
  }
  .app-public.route-login .course-entry-panel .course-entry-primary{
    min-height:50px;
    padding:11px 18px;
    font-size:1.06rem;
  }
  .app-public.route-login .course-entry-links{
    margin-top:auto;
    padding-top:12px;
    gap:9px;
    border-top:1px solid var(--line-soft);
  }
  .app-public.route-login .course-entry-links a{
    line-height:1.35;
  }
}

/* Nei desktop bassi manteniamo il contenuto arioso senza aumentare l'altezza della card. */
@media (min-width:761px) and (max-height:759px){
  .app-public.route-login .course-entry-panel{
    gap:9px;
    padding-block:16px;
  }
  .app-public.route-login .course-entry-brand-wrap{min-height:58px}
  .app-public.route-login .course-entry-brand{min-height:54px}
  .app-public.route-login .course-entry-brand img{width:min(220px,82%);max-height:56px}
  .app-public.route-login .course-entry-panel .section-kicker{font-size:.78rem}
  .app-public.route-login .course-entry-panel h2{font-size:1.5rem}
  .app-public.route-login .course-entry-panel>p:not(.section-kicker){font-size:.96rem;line-height:1.42}
  .app-public.route-login .course-entry-panel .course-entry-primary{min-height:42px;padding:8px 15px;font-size:1rem}
  .app-public.route-login .course-entry-links{padding-top:7px;gap:4px}
}

/* Su mobile la card torna a dimensionarsi sul contenuto: maggiore respiro, senza altezza artificiale. */
@media (max-width:760px){
  .app-public.route-login .course-entry-panel{gap:13px}
  .app-public.route-login .course-entry-brand-wrap{min-height:72px;justify-content:center}
  .app-public.route-login .course-entry-brand{min-height:68px;justify-content:center;width:100%}
  .app-public.route-login .course-entry-brand img{width:min(230px,78vw);max-height:74px;object-position:center}
  .app-public.route-login .course-entry-panel h2{font-size:clamp(1.5rem,7vw,1.85rem)}
  .app-public.route-login .course-entry-panel>p:not(.section-kicker){line-height:1.5}
  .app-public.route-login .course-entry-links{gap:7px;margin-top:2px;padding-top:10px;border-top:1px solid var(--line-soft)}
}

/* V14.23.0.2 - login: un solo marchio FIP nella card corsi.
   La filigrana decorativa duplicava visivamente il logo ufficiale. */
.app-public.route-login .course-entry-panel::after{content:none}

/* V14.23.0.3 - login: correzione definitiva selettori logo FIP per tema.
   Le regole layout successive su .course-entry-brand img avevano specificita'
   maggiore della precedente regola .course-fip-logo-dark. */
.app-public.route-login .course-entry-brand img.course-fip-logo-dark{display:none}
.app-public.route-login .course-entry-brand img.course-fip-logo-light{display:block}
html[data-theme-resolved="dark"] .app-public.route-login .course-entry-brand img.course-fip-logo-light{display:none}
html[data-theme-resolved="dark"] .app-public.route-login .course-entry-brand img.course-fip-logo-dark{display:block}


/* V14.24.0 - controlli colore Rich Text e immagini inline e-mail */
.rich-color-label{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:4px 7px;border:1px solid #9db0c1;border-radius:5px;background:#fff;cursor:pointer}.rich-color-input{width:28px;height:24px;padding:0;border:0;background:transparent;cursor:pointer}.rich-editor-surface font,.rich-editor-surface span{max-width:100%}

/* V14.24.0.1 - privacy hint per immagini inline e-mail */
.rich-image-privacy-hint{display:block;margin-top:8px;line-height:1.45;color:var(--muted,#5f6b76)}

/* V14.25.0 - scheda completa tesserato */
.dossier-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:0 0 16px}.dossier-metrics article{padding:15px 16px;border:1px solid var(--border,#d9e1e8);border-radius:12px;background:var(--surface,#fff);min-width:0}.dossier-metrics span{display:block;font-size:.78rem;color:var(--muted,#617080);text-transform:uppercase;letter-spacing:.035em}.dossier-metrics strong{display:block;margin-top:6px;font-size:1.2rem}.dossier-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;padding:9px;border:1px solid var(--border,#d9e1e8);border-radius:12px;background:var(--surface,#fff);position:sticky;top:8px;z-index:8}.dossier-nav a{padding:7px 10px;border-radius:8px;text-decoration:none;font-weight:700;font-size:.9rem}.dossier-nav a:hover,.dossier-nav a:focus-visible{background:var(--surface-soft,#eef4f8)}.dossier-timeline,.dossier-history-list{display:grid;gap:0}.dossier-timeline article,.dossier-history-list article{display:grid;grid-template-columns:150px minmax(0,1fr);gap:18px;padding:14px 0;border-bottom:1px solid var(--border,#d9e1e8)}.dossier-timeline article:last-child,.dossier-history-list article:last-child{border-bottom:0}.dossier-timeline time,.dossier-history-list time{font-variant-numeric:tabular-nums;color:var(--muted,#617080);font-size:.9rem}.dossier-timeline p,.dossier-history-list p{margin:.25rem 0 .35rem}.attendance-scope-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px;margin:0 0 18px}.attendance-scope-grid article{padding:15px 16px;border:1px solid var(--border,#d9e1e8);border-radius:12px;background:var(--surface-soft,#f7f9fb)}.attendance-scope-grid article span,.attendance-scope-grid article small{display:block}.attendance-scope-grid article strong{display:block;margin:5px 0}.ref-person-link{text-decoration:none}.ref-person-link:hover,.ref-person-link:focus-visible{text-decoration:underline}@media(max-width:1100px){.dossier-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.dossier-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dossier-nav{position:static}.dossier-timeline article,.dossier-history-list article{grid-template-columns:1fr;gap:4px}}

/* V14.26.0 - Report come fase dell'Evento */
.report-parent-banner{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 20px;padding:22px 24px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--soft),#fff);box-shadow:var(--shadow)}
.report-parent-banner.compact{padding:18px 20px}.report-parent-banner h2{margin:3px 0 7px}.report-parent-banner p{margin:0}.report-parent-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.report-inherited-grid>div{background:var(--soft);border:1px solid var(--line-soft);border-radius:var(--radius);padding:12px 14px}.report-inherited-grid dt{font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.report-inherited-grid dd{margin-top:5px;font-weight:650}
.report-event-card{display:flex;flex-direction:column}.report-event-card .card-actions{margin-top:auto}.report-event-card .report-stats{grid-template-columns:repeat(4,minmax(0,1fr))}.report-coverage{color:var(--muted);min-height:2.4em}
.report-participant-table{max-height:70vh;border:1px solid var(--line);border-radius:var(--radius);overflow:auto}.report-participant-table table{min-width:1040px}.report-participant-table th{position:sticky;top:0;z-index:3}.report-participant-table .sticky-col{position:sticky;left:0;z-index:4;background:#fff}.report-participant-table th.sticky-col{z-index:6;background:#eef3f8}.report-participant-table .name-col{min-width:250px;border-right:1px solid var(--line)}.report-participant-table .notes-input{min-width:220px}.report-participant-table input[type=number]{min-width:82px}.participant-count{align-self:end;padding:0 0 10px;font-weight:700;color:var(--blue)}
.report-workflow-panel{overflow:visible}.report-workflow-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:8px 0 22px}.workflow-step{position:relative;min-height:112px;padding:16px 14px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--soft)}.workflow-step>span{display:grid;place-items:center;width:30px;height:30px;margin-bottom:10px;border:1px solid var(--line);border-radius:999px;background:#fff;font-weight:800}.workflow-step strong,.workflow-step small{display:block}.workflow-step small{margin-top:4px;color:var(--muted)}.workflow-step.done{border-color:#8fc7a4;background:#f2fbf5}.workflow-step.done>span{border-color:#73b78c;background:#e1f5e8}.workflow-step.current{border-color:#91b7de;background:#f1f7fd}.workflow-step.current>span{border-color:#6ca0d1;background:#dfedfa}.workflow-step.optional{border-style:dashed}.workflow-step.pending{opacity:.78}
.report-approval-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.report-approval-card{padding:18px;border:1px solid var(--line);border-radius:var(--radius-lg);background:#fff}.report-approval-card h3{margin-top:0}.approval-list{display:grid;gap:8px}.approval-item{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--soft)}.approval-item>span:last-child{min-width:0}.approval-item strong,.approval-item small{display:block}.approval-history{margin-top:14px}.approval-history summary{cursor:pointer;font-weight:700;color:var(--muted)}.assignment-flags{display:flex;flex-wrap:wrap;gap:5px}
@media(max-width:900px){.report-parent-banner{display:block}.report-parent-badges{justify-content:flex-start;margin-top:14px}.report-workflow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}.report-approval-grid{grid-template-columns:1fr}.report-event-card .report-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.report-workflow-steps{grid-template-columns:1fr}.report-event-card .report-stats{grid-template-columns:1fr}.report-parent-banner{padding:17px 16px}}



/* V14.27.0 - filtri live, Report e tema scuro */
.referees-live-filter{align-items:end}.referees-live-filter .live-filter-summary{align-self:center;min-width:92px;font-weight:700;color:var(--muted)}
.report-delete-zone .compact-delete-form{max-width:520px}.report-participant-table [data-athletic-medical]{white-space:nowrap}
html[data-theme-resolved="dark"] .report-parent-banner{border-color:#40536a;border-left-color:#6db8ff;background:linear-gradient(135deg,#0d1927,#101f30);color:var(--ink);box-shadow:0 5px 20px rgba(0,0,0,.18)}
html[data-theme-resolved="dark"] .report-inherited-grid>div,
html[data-theme-resolved="dark"] .report-card.report-event-card,
html[data-theme-resolved="dark"] .report-approval-card{border-color:#40536a;background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .report-card.report-event-card h2,html[data-theme-resolved="dark"] .report-parent-banner h2,html[data-theme-resolved="dark"] .report-approval-card h3{color:#e8f2fc}
html[data-theme-resolved="dark"] .report-participant-table{border-color:#40536a;background:#0d1927}
html[data-theme-resolved="dark"] .report-participant-table .sticky-col.name-col{background:#0d1927;color:var(--ink);border-right-color:#40536a}
html[data-theme-resolved="dark"] .report-participant-table th.sticky-col.name-col{background:#162536;color:#d9e6f3}
html[data-theme-resolved="dark"] .workflow-step{border-color:#40536a;background:#0d1927;color:var(--ink)}
html[data-theme-resolved="dark"] .workflow-step>span{border-color:#536b84;background:#101f30;color:#e8f2fc}
html[data-theme-resolved="dark"] .workflow-step.done{border-color:#397953;background:#10271c}html[data-theme-resolved="dark"] .workflow-step.done>span{border-color:#4c9969;background:#173925}
html[data-theme-resolved="dark"] .workflow-step.current{border-color:#4778a6;background:#10263b}html[data-theme-resolved="dark"] .workflow-step.current>span{border-color:#5c93c6;background:#173957}
html[data-theme-resolved="dark"] .approval-item{border-color:#40536a;background:#101f30;color:var(--ink)}
html[data-theme-resolved="dark"] .danger-zone.report-delete-zone{border-color:#8d4949;background:#291617}

/* V14.28.0 - firma remota e servizi fiduciari */
.remote-signature-profile-panel .status,.remote-signature-card .status{display:inline-flex}.remote-signature-card code,.remote-signature-evidence code{overflow-wrap:anywhere}.remote-signature-option{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:12px}.remote-signature-option small{color:var(--muted)}.remote-signature-evidence{margin:14px 0;padding:12px 14px;border:1px solid var(--line-soft);border-radius:var(--radius);background:var(--soft)}.remote-signature-evidence ul{margin:8px 0 0;padding-left:22px}.trust-provider-form{margin-bottom:18px}.trust-provider-form .secret-field small{display:block}.trust-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.trust-provider-grid .full{grid-column:1/-1}
html[data-theme-resolved="dark"] .remote-signature-card,html[data-theme-resolved="dark"] .remote-signature-profile-panel,html[data-theme-resolved="dark"] .trust-provider-form{border-color:#40536a;background:#0d1927;color:var(--ink)}html[data-theme-resolved="dark"] .remote-signature-evidence{border-color:#40536a;background:#101f30;color:var(--ink)}
@media(max-width:760px){.trust-provider-grid{grid-template-columns:1fr}.trust-provider-grid .full{grid-column:auto}}

/* V14.29.0.3 - normalizzazione responsive e cromatica dei filtri.
   Le griglie si adattano alla larghezza effettivamente disponibile, senza min-width
   che possano allargare il viewport. I controlli mantengono dimensioni e contrasto
   coerenti nei temi chiaro/scuro, con touch target maggiorati sui dispositivi touch. */
html[data-theme-resolved="light"]{color-scheme:light}
html[data-theme-resolved="dark"]{color-scheme:dark}

.toolbar,.selection-toolbar{max-width:100%;flex-wrap:wrap}
.toolbar>.field,.selection-toolbar>.field{min-width:0;flex:1 1 13rem}
.toolbar>.search-field,.selection-toolbar>.search-field{flex-basis:20rem}
.selection-toolbar input[type=search]{min-width:0;max-width:100%}

.filter-bar,
.audit-toolbar,
.participant-toolbar,
.referees-live-filter,
.territory-history-filters,
.audit-filter-grid,
.communication-stats-filter .form-grid,
.filter-form .form-grid,
.participant-filter-grid,
.event-picker-filters{
  max-width:100%;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,13.5rem),1fr));
  gap:14px;
  align-items:end;
}
.filter-bar,.audit-toolbar,.participant-toolbar,.referees-live-filter,.territory-history-filters{display:grid}
.participant-filter-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,12.5rem),1fr))}
.filter-bar>.field,
.audit-toolbar>.field,
.participant-toolbar>.field,
.referees-live-filter>.field,
.territory-history-filters>.field,
.audit-filter-grid>.field,
.communication-stats-filter .form-grid>.field,
.filter-form .form-grid>.field,
.participant-filter-grid>.field,
.event-picker-filters>.field{min-width:0;max-width:100%;margin:0}
.filter-bar>.search-field,
.filter-bar>.field:has(input[type=search]),
.audit-toolbar>.search-field,
.participant-toolbar>.field:has(input[type=search]),
.referees-live-filter>.search-field,
.event-picker-filters>.event-picker-search{grid-column:1/-1}
.release-history-filter>.field{min-width:0;grid-column:1/-1}
.filter-bar>.live-filter-summary,
.referees-live-filter>.live-filter-summary,
.support-filter-bar>.live-filter-summary{grid-column:1/-1;min-width:0;margin:0;white-space:normal}
.province-filter-field{max-width:none}

.filter-bar .field>label,
.audit-toolbar .field>label,
.participant-toolbar .field>label,
.referees-live-filter .field>label,
.territory-history-filters .field>label,
.audit-filter-grid .field>label,
.communication-stats-filter .field>label,
.filter-form .field>label,
.participant-filter-grid .field>label,
.event-picker-filters .field>label{
  margin-bottom:6px;
  color:var(--ink);
  font-size:.875rem;
  line-height:1.35;
}
.filter-bar input:not([type=checkbox]):not([type=radio]),
.filter-bar select,
.audit-toolbar input:not([type=checkbox]):not([type=radio]),
.audit-toolbar select,
.participant-toolbar input:not([type=checkbox]):not([type=radio]),
.participant-toolbar select,
.referees-live-filter input:not([type=checkbox]):not([type=radio]),
.referees-live-filter select,
.territory-history-filters input:not([type=checkbox]):not([type=radio]),
.territory-history-filters select,
.audit-filter-grid input:not([type=checkbox]):not([type=radio]),
.audit-filter-grid select,
.communication-stats-filter input:not([type=checkbox]):not([type=radio]),
.communication-stats-filter select,
.filter-form input:not([type=checkbox]):not([type=radio]),
.filter-form select,
.participant-filter-grid input:not([type=checkbox]):not([type=radio]),
.participant-filter-grid select,
.event-picker-filters input:not([type=checkbox]):not([type=radio]),
.event-picker-filters select{
  width:100%;
  min-width:0;
  max-width:100%;
  min-height:46px;
  font-size:1rem;
}
.filter-bar select,
.audit-toolbar select,
.participant-toolbar select,
.referees-live-filter select,
.territory-history-filters select,
.audit-filter-grid select,
.communication-stats-filter select,
.filter-form select,
.participant-filter-grid select,
.event-picker-filters select{text-overflow:ellipsis}
.filter-bar>.btn,
.audit-toolbar>.btn,
.participant-toolbar>.btn,
.referees-live-filter>.btn,
.territory-history-actions>.btn,
.event-picker-bulk-actions>.btn{width:100%;min-width:0;min-height:46px}
.participant-toolbar>.participant-count{min-width:0;align-self:center;padding:0;color:var(--muted);overflow-wrap:anywhere}
.live-filter-summary{max-width:100%;line-height:1.4;overflow-wrap:anywhere;white-space:normal}

input::placeholder,textarea::placeholder{color:#657487;opacity:1}
html[data-theme-resolved="dark"] input::placeholder,
html[data-theme-resolved="dark"] textarea::placeholder{color:#9fb0c2;opacity:1}
html[data-theme-resolved="dark"] option,
html[data-theme-resolved="dark"] optgroup{background:#0a1522;color:var(--ink)}
html[data-theme-resolved="dark"] input:-webkit-autofill,
html[data-theme-resolved="dark"] input:-webkit-autofill:hover,
html[data-theme-resolved="dark"] input:-webkit-autofill:focus{
  -webkit-text-fill-color:var(--ink);
  caret-color:var(--ink);
  box-shadow:0 0 0 1000px #0a1522 inset;
}
html[data-theme-resolved="dark"] .participant-filter-grid .field>label{color:var(--ink)}
html[data-theme-resolved="dark"] .participant-privacy-hint strong{color:inherit}
.muted{color:var(--muted)}
.participant-row.disabled{opacity:1;color:#566575}
.participant-row input:disabled,
input:disabled,select:disabled,textarea:disabled{border-color:#a8b3c0;background:#e8ebef;color:#566575;opacity:1}
.btn:disabled,.btn[aria-disabled="true"]{border-color:#a8b3c0;background:#d7dde5;color:#526171;cursor:not-allowed;opacity:1}
html[data-theme-resolved="dark"] .participant-row.disabled{color:var(--muted)}
html[data-theme-resolved="dark"] .btn:disabled,
html[data-theme-resolved="dark"] .btn[aria-disabled="true"]{border-color:#52657a;background:#202d3b;color:#b9c7d5}

/* Anche le griglie di contenuto storiche possono vivere in pannelli piu stretti
   del viewport: il minimo non deve mai superare lo spazio realmente disponibile. */
.metric-grid.compact{grid-template-columns:repeat(auto-fit,minmax(min(100%,170px),1fr))}
.choice-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
.people-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.report-grid,.trainer-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.template-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.attendance-scope-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr))}

@media(max-width:640px){
  .filter-bar,
  .audit-toolbar,
  .participant-toolbar,
  .referees-live-filter,
  .territory-history-filters,
  .audit-filter-grid,
  .communication-stats-filter .form-grid,
  .filter-form .form-grid,
  .participant-filter-grid,
  .event-picker-filters{grid-template-columns:minmax(0,1fr)}
  .filter-bar>.search-field,
  .filter-bar>.field:has(input[type=search]),
  .audit-toolbar>.search-field,
  .participant-toolbar>.field:has(input[type=search]),
  .referees-live-filter>.search-field,
  .event-picker-filters>.event-picker-search,
  .release-history-filter>.field{grid-column:auto}
  .filter-bar>.btn,
  .filter-bar>a.btn,
  .audit-toolbar>.btn,
  .audit-toolbar>a.btn,
  .participant-toolbar>.btn,
  .participant-toolbar>a.btn,
  .referees-live-filter>.btn,
  .referees-live-filter>a.btn,
  .territory-history-actions,
  .territory-history-actions>.btn{width:100%}
  .participant-filter-panel,.participant-toolbar,.filter-bar,.territory-history-filters,.event-picker-filters{padding:12px;gap:12px}
}
@media(pointer:coarse){
  .filter-bar input:not([type=checkbox]):not([type=radio]),.filter-bar select,.filter-bar>.btn,.filter-bar>a.btn,
  .audit-toolbar input:not([type=checkbox]):not([type=radio]),.audit-toolbar select,.audit-toolbar>.btn,.audit-toolbar>a.btn,
  .participant-toolbar input:not([type=checkbox]):not([type=radio]),.participant-toolbar select,.participant-toolbar>.btn,.participant-toolbar>a.btn,
  .referees-live-filter input:not([type=checkbox]):not([type=radio]),.referees-live-filter select,.referees-live-filter>.btn,.referees-live-filter>a.btn,
  .territory-history-filters input:not([type=checkbox]):not([type=radio]),.territory-history-filters select,
  .audit-filter-grid input:not([type=checkbox]):not([type=radio]),.audit-filter-grid select,
  .communication-stats-filter input:not([type=checkbox]):not([type=radio]),.communication-stats-filter select,
  .filter-form input:not([type=checkbox]):not([type=radio]),.filter-form select,
  .participant-filter-grid input:not([type=checkbox]):not([type=radio]),.participant-filter-grid select,
  .event-picker-filters input:not([type=checkbox]):not([type=radio]),.event-picker-filters select,.event-picker-bulk-actions>.btn{min-height:48px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}
}
@media print{
  .filter-bar,.toolbar[data-live-filter],.territory-history-filters,.audit-filter-panel,.communication-stats-filter,.filter-form,.participant-toolbar,.participant-filter-panel,.event-picker-filters{display:none!important}
}

/* V14.29.0.5 - elenco Report tabellare, confrontabile su desktop e leggibile come righe strutturate su mobile. */
.report-list-wrap{overflow:auto;border:0;border-radius:0;background:transparent;box-shadow:none}
.report-list-table{min-width:1000px;border-collapse:separate!important;border-spacing:0 10px}
.report-list-table thead th{padding-block:8px;border:0;background:transparent;color:var(--muted);font-size:.75rem;letter-spacing:.055em;text-transform:uppercase}
.report-list-table tbody td{padding:15px 14px;border-block:1px solid var(--line);background:#fff;vertical-align:middle}
.report-list-table tbody td:first-child{border-left:5px solid var(--report-row-accent,#7b8794);border-radius:10px 0 0 10px}
.report-list-table tbody td:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}
.report-list-wrap .report-list-table tbody tr:last-child td{border-bottom:1px solid var(--line)}
.report-list-table tbody tr:hover td{background:#f7faff}
.report-list-row.state-ok{--report-row-accent:#17865b}
.report-list-row.state-info{--report-row-accent:#1673b9}
.report-list-row.state-warn{--report-row-accent:#c07a00}
.report-list-row.state-muted{--report-row-accent:#778391}
.report-list-table th:nth-child(1){width:16%}.report-list-table th:nth-child(2){width:24%}.report-list-table th:nth-child(3){width:21%}.report-list-table th:nth-child(4){width:22%}.report-list-table th:nth-child(5){width:12%}
.report-list-table td>small,.report-state-detail,.report-list-meta{display:block;margin-top:5px;color:var(--muted);font-size:.78rem;line-height:1.35;overflow-wrap:anywhere}
.report-list-title{display:inline-block;color:var(--blue-dark);font-size:1rem;font-weight:800;line-height:1.3;white-space:normal!important;overflow-wrap:anywhere}
.report-list-meta{font-weight:700;text-transform:none}
.report-list-audience{display:block;margin-top:8px}.report-list-audience .status{white-space:normal}
.report-list-counts{display:grid;grid-template-columns:repeat(3,minmax(58px,1fr));gap:6px;margin:0}
.report-list-counts>div{min-width:0;padding:6px 7px;border:1px solid var(--line-soft);border-radius:7px;background:var(--soft);text-align:center}
.report-list-counts dt{color:var(--muted);font-size:.68rem;font-weight:700;line-height:1.15}.report-list-counts dd{margin:2px 0 0;color:var(--blue-dark);font-size:1.05rem;font-weight:800;line-height:1}
.report-list-counts .needs-attention{border-color:#d9a52e;background:var(--warning-soft)}.report-list-counts .needs-attention dd{color:#704800}
.report-list-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}.report-list-actions .btn{white-space:nowrap}
html[data-theme-resolved="dark"] .report-list-table tbody td{border-color:#40536a;background:#101c2b}
html[data-theme-resolved="dark"] .report-list-table tbody tr:hover td{background:#132438}
html[data-theme-resolved="dark"] .report-list-title{color:#9bd0ff}
html[data-theme-resolved="dark"] .report-list-counts>div{border-color:#40536a;background:#142335}
html[data-theme-resolved="dark"] .report-list-counts dd{color:#b9dcff}
html[data-theme-resolved="dark"] .report-list-counts .needs-attention{border-color:#947124;background:#3a2e16}
html[data-theme-resolved="dark"] .report-list-counts .needs-attention dd{color:#ffe0a0}
@media(max-width:1020px){
  .report-list-wrap{overflow:visible}
  .report-list-table{display:block;min-width:0!important;border-spacing:0}
  .report-list-table thead{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
  .report-list-table tbody{display:grid;gap:14px}
  .report-list-table .report-list-row{display:block;border:1px solid var(--line);border-left:5px solid var(--report-row-accent,#7b8794);border-radius:11px;background:#fff;box-shadow:var(--shadow);overflow:hidden}
  .report-list-table .report-list-row>td{display:grid;grid-template-columns:minmax(7.5rem,34%) minmax(0,1fr);gap:4px 12px;padding:12px 13px;border:0!important;border-bottom:1px solid var(--line-soft)!important;border-radius:0!important;background:transparent!important;vertical-align:top}
  .report-list-table .report-list-row>td:last-child{border-bottom:0!important}
  .report-list-table .report-list-row>td::before{content:attr(data-label);grid-column:1;grid-row:1/span 10;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.045em;line-height:1.3;text-transform:uppercase}
  .report-list-table .report-list-row>td>*{grid-column:2;min-width:0}
  .report-list-table .actions-col{width:auto}
  .report-list-actions{justify-content:flex-start}
  html[data-theme-resolved="dark"] .report-list-table .report-list-row{border-color:#40536a;background:#101c2b}
}
@media(max-width:430px){
  .report-list-table .report-list-row>td{grid-template-columns:minmax(0,1fr)}
  .report-list-table .report-list-row>td::before,.report-list-table .report-list-row>td>*{grid-column:1;grid-row:auto}
  .report-list-table .report-list-row>td::before{margin-bottom:4px}
  .report-list-actions .btn{width:100%}
}
@media print{
  .report-list-table{min-width:0;border-spacing:0 6px;font-size:9pt}.report-list-table .actions-col{display:none}.report-list-table tbody td{box-shadow:none}
}

/* V14.29.0.6 - filtro sanitario autorizzato e selezione/export anagrafico tesserati. */
.referee-export-form{min-width:0}
.referee-export-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:14px 16px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}
.referee-export-toolbar>div:first-child{min-width:min(100%,260px)}
.referee-export-toolbar strong,.referee-export-toolbar small{display:block}.referee-export-toolbar small{margin-top:3px;color:var(--muted);line-height:1.35}
.referee-export-actions{display:flex;min-width:0;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}
.referee-selection-count{min-width:12rem;color:var(--muted);font-size:.88rem;font-weight:700;text-align:center}
.referees-table .ref-col-select,.referees-table .ref-select{width:52px;min-width:52px;text-align:center}
.referees-table .ref-select input{display:block;width:1.25rem;height:1.25rem;margin:0 auto}
.referees-table tbody tr:has([data-referee-select]:checked)>td{background:#eef6ff}
html[data-theme-resolved="dark"] .referee-export-toolbar{border-color:var(--line);border-left-color:#6db8ff;background:var(--surface);box-shadow:0 4px 14px rgba(0,0,0,.2)}
html[data-theme-resolved="dark"] .referees-table tbody tr:has([data-referee-select]:checked)>td{background:#142b43}
@media(max-width:900px){
  .referee-export-toolbar{align-items:stretch;flex-direction:column}.referee-export-actions{justify-content:flex-start}.referee-selection-count{min-width:0;text-align:left}
}
@media(max-width:620px){
  .referee-export-toolbar{padding:12px}.referee-export-actions{display:grid;grid-template-columns:minmax(0,1fr)}.referee-export-actions .btn{width:100%}.referee-selection-count{padding-block:3px}
}
@media(pointer:coarse){.referee-export-actions .btn{min-height:48px}.referees-table .ref-select input{width:1.4rem;height:1.4rem}}
@media print{.referee-export-toolbar,.referees-table .ref-col-select,.referees-table .ref-select{display:none!important}}

/* V14.29.0.7 - righe-card responsive per Tesserati ed Eventi.
   La regola e isolata nella classe adaptive-card-table: rimuovendola dal markup
   si torna alla tabella tradizionale senza cambiare dati o controller. */
.adaptive-card-table{border-collapse:separate!important;border-spacing:0 10px}
.adaptive-card-table thead th{padding-block:8px;border:0;background:transparent;color:var(--muted);font-size:.75rem;letter-spacing:.045em;text-transform:uppercase}
.adaptive-card-table tbody td{padding:14px 12px;border-block:1px solid var(--line);background:var(--surface);vertical-align:middle}
.adaptive-card-table tbody td:first-child{border-left:5px solid var(--adaptive-row-accent,#778391);border-radius:10px 0 0 10px}
.adaptive-card-table tbody td:last-child{border-right:1px solid var(--line);border-radius:0 10px 10px 0}
.adaptive-card-table tbody tr:last-child td{border-bottom:1px solid var(--line)}
.adaptive-card-table tbody tr:hover td{background:#f7faff}
.adaptive-card-table .state-ok{--adaptive-row-accent:#17865b}
.adaptive-card-table .state-info{--adaptive-row-accent:#1673b9}
.adaptive-card-table .state-warn{--adaptive-row-accent:#c07a00}
.adaptive-card-table .state-muted{--adaptive-row-accent:#778391}
.adaptive-card-table td>small{display:block;margin-top:5px;color:var(--muted);line-height:1.35;overflow-wrap:anywhere}
.event-list-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px}
.event-list-actions .table-action{white-space:normal}
.historical-assignment-panel{display:grid;gap:12px;margin-top:16px}
.historical-assignment-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:10px}
.report-pdf-preview{display:block;width:100%;height:min(76vh,920px);min-height:560px;margin:0 0 16px;border:1px solid var(--line);border-radius:10px;background:#e9eef4}
.report-confirm-panel,.report-signature-recovery{border-left:5px solid var(--blue)}
html[data-theme-resolved="dark"] .adaptive-card-table tbody td{border-color:#40536a;background:#101c2b}
html[data-theme-resolved="dark"] .adaptive-card-table tbody tr:hover td{background:#132438}

@media(max-width:1020px){
  .referees-table-wrap,.event-list-wrap{overflow:visible}
  .referees-scroll-hint{display:none}
  .adaptive-card-table{display:block;min-width:0!important;border-spacing:0}
  .adaptive-card-table thead{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
  .adaptive-card-table tbody{display:grid;gap:14px}
  .adaptive-card-table tbody>tr{display:block;border:1px solid var(--line);border-left:5px solid var(--adaptive-row-accent,#778391);border-radius:11px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
  .adaptive-card-table tbody>tr>td{display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:4px 12px;width:auto!important;min-width:0!important;padding:12px 13px;border:0!important;border-bottom:1px solid var(--line-soft)!important;border-radius:0!important;background:transparent!important;text-align:left!important;vertical-align:top}
  .adaptive-card-table tbody>tr>td:last-child{border-bottom:0!important}
  .adaptive-card-table tbody>tr>td::before{content:attr(data-label);grid-column:1;grid-row:1/span 12;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.045em;line-height:1.3;text-transform:uppercase}
  .adaptive-card-table tbody>tr>td>*{grid-column:2;min-width:0}
  .adaptive-card-table .ref-select{display:flex;align-items:center;gap:12px}
  .adaptive-card-table .ref-select::before{content:attr(data-label);flex:0 0 min(32%,7.5rem);color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.045em;text-transform:uppercase}
  .adaptive-card-table .ref-select>input{margin:0}
  .event-list-actions{justify-content:flex-start}
  html[data-theme-resolved="dark"] .adaptive-card-table tbody>tr{border-color:#40536a;background:#101c2b}
}
@media(max-width:460px){
  .report-pdf-preview{height:68vh;min-height:430px}
  .adaptive-card-table tbody>tr>td{grid-template-columns:minmax(0,1fr)}
  .adaptive-card-table tbody>tr>td::before,.adaptive-card-table tbody>tr>td>*{grid-column:1;grid-row:auto}
  .adaptive-card-table tbody>tr>td::before{margin-bottom:4px}
  .adaptive-card-table .ref-select::before{flex-basis:auto}
  .event-list-actions{display:grid;grid-template-columns:minmax(0,1fr)}
}
@media print{
  .adaptive-card-table{display:table;min-width:0;border-spacing:0 6px;font-size:9pt}
  .adaptive-card-table thead{position:static!important;width:auto!important;height:auto!important;margin:0!important;overflow:visible!important;clip:auto!important;white-space:normal!important}
  .adaptive-card-table tbody{display:table-row-group}.adaptive-card-table tbody>tr{display:table-row;border:0;box-shadow:none}
  .adaptive-card-table tbody>tr>td{display:table-cell;padding:7px;border-block:1px solid #bbb!important}.adaptive-card-table tbody>tr>td::before{display:none}
  .event-list-table .actions-col{display:none}
}

/* V14.29.0.11 - dettaglio Evento: conferme preventive ariose e mobile senza overflow. */
.route-event-form,
.route-event-form .app-content,
.route-event-form .main,
.route-event-form .event-form,
.route-event-form .event-form fieldset,
.route-event-form .form-section,
.route-event-form .panel,
.route-event-form .panel-heading,
.route-event-form .event-person-picker,
.route-event-form .event-picker-selected,
.route-event-form .table-wrap{min-width:0;max-width:100%}
.event-participation-overview{display:grid;gap:20px}
.event-participation-overview>.panel-heading,
.event-participation-overview>.report-stats,
.event-participation-overview>.notice,
.event-participation-overview>.definition-grid,
.event-participation-overview>.form-shell,
.event-participation-overview>.table-wrap,
.event-participation-overview>.empty-state{margin-block:0}
.event-participation-overview>.panel-heading{padding-bottom:18px;border-bottom:1px solid var(--line-soft)}
.event-participation-overview .participation-stats{gap:12px}
.event-participation-overview .participation-stats>span{position:relative;overflow:hidden;padding:16px 12px;border-radius:10px;background:var(--surface);box-shadow:0 2px 8px rgba(13,54,91,.06)}
.event-participation-overview .participation-stats>span::before{position:absolute;inset:0 0 auto;height:4px;background:var(--blue);content:""}
.event-participation-overview .participation-stats>span:nth-child(2)::before{background:var(--ok)}
.event-participation-overview .participation-stats>span:nth-child(3)::before{background:var(--danger)}
.event-participation-overview .participation-stats>span:nth-child(4)::before{background:var(--warning)}
.event-participation-overview .participation-module-status{padding:16px;border:1px solid var(--line-soft);border-radius:10px;background:var(--soft)}
.event-participation-overview .participation-send-form{padding:18px;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow)}
.event-participation-overview .participation-send-form>.panel-heading{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}
.event-participation-overview .participation-data-legend{padding-block:16px}
.event-participation-overview .participation-table-wrap{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface)}
.event-document-actions{display:flex;flex-wrap:wrap;gap:7px}
html[data-theme-resolved="dark"] .event-participation-overview .participation-stats>span,
html[data-theme-resolved="dark"] .event-participation-overview .participation-send-form,
html[data-theme-resolved="dark"] .event-participation-overview .participation-table-wrap{background:#101c2b}
html[data-theme-resolved="dark"] .event-participation-overview .participation-module-status{background:#0c1826}

@media(max-width:1020px){
  body.route-event-form{overflow-x:clip}
  .route-event-form .event-selected-table-wrap,
  .route-event-form .participation-table-wrap,
  .route-event-form .event-documents-table-wrap{overflow:visible}
  .route-event-form .event-selected-table{display:block;min-width:0!important;border-spacing:0}
  .route-event-form .event-selected-table thead{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important}
  .route-event-form .event-selected-table tbody{display:grid;gap:12px}
  .route-event-form .event-selected-table tbody>tr{display:block;border:1px solid var(--line);border-left:5px solid var(--blue);border-radius:11px;background:var(--surface);box-shadow:var(--shadow);overflow:hidden}
  .route-event-form .event-selected-table tbody>tr>td{display:grid;grid-template-columns:minmax(7.5rem,32%) minmax(0,1fr);gap:4px 12px;width:auto!important;min-width:0!important;padding:12px 13px;border:0!important;border-bottom:1px solid var(--line-soft)!important;background:transparent!important;text-align:left!important;white-space:normal}
  .route-event-form .event-selected-table tbody>tr>td:last-child{border-bottom:0!important}
  .route-event-form .event-selected-table tbody>tr>td::before{content:attr(data-label);grid-column:1;grid-row:1/span 8;color:var(--muted);font-size:.72rem;font-weight:800;letter-spacing:.045em;line-height:1.3;text-transform:uppercase}
  .route-event-form .event-selected-table tbody>tr>td>*{grid-column:2;min-width:0}
  html[data-theme-resolved="dark"] .route-event-form .event-selected-table tbody>tr{border-color:#40536a;border-left-color:#6db8ff;background:#101c2b}
}

@media(max-width:760px){
  .route-event-form .main{width:100%;padding-inline:12px;overflow:visible}
  .route-event-form .page-hero,
  .route-event-form .panel,
  .route-event-form .form-section{padding-inline:14px}
  .route-event-form .panel-heading,
  .route-event-form .form-section-heading,
  .route-event-form .event-day-row,
  .route-event-form .attachment-card{display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;gap:12px}
  .route-event-form .panel-heading>*{min-width:0;max-width:100%}
  .route-event-form .panel-heading>.btn,
  .route-event-form .page-hero-actions .btn,
  .route-event-form .actions>.btn,
  .route-event-form .actions>form,
  .route-event-form .actions>form>.btn,
  .route-event-form .inline-form,
  .route-event-form .inline-form>.btn,
  .route-event-form .sticky-actions>.btn,
  .route-event-form .event-section-actions>.btn{width:100%;max-width:100%;min-width:0}
  .route-event-form .btn,
  .route-event-form button,
  .route-event-form .table-action{word-break:normal;overflow-wrap:break-word;hyphens:none;white-space:normal;line-height:1.35}
  .route-event-form .btn{min-height:46px;padding-inline:14px;text-align:center}
  .route-event-form .page-hero-actions,
  .route-event-form .actions,
  .route-event-form .participation-row-actions,
  .route-event-form .table-inline-actions,
  .route-event-form .event-document-actions{display:grid;grid-template-columns:minmax(0,1fr);width:100%;gap:8px}
  .route-event-form .participation-row-actions .table-action,
  .route-event-form .table-inline-actions .table-action,
  .route-event-form .event-document-actions .table-action,
  .route-event-form .event-picker-remove{display:flex;justify-content:center;width:100%;min-height:42px;padding:10px 12px}
  .route-event-form .table-inline-actions{margin:0}
  .route-event-form input,
  .route-event-form select,
  .route-event-form textarea{min-width:0;max-width:100%}
  .route-event-form input[type=file]{width:100%}
  .event-participation-overview{gap:16px}
  .event-participation-overview .participation-send-form{padding:14px}
  .event-participation-overview .participation-module-status{padding:14px}
}

@media(max-width:460px){
  .route-event-form .event-selected-table tbody>tr>td{grid-template-columns:minmax(0,1fr)}
  .route-event-form .event-selected-table tbody>tr>td::before,
  .route-event-form .event-selected-table tbody>tr>td>*{grid-column:1;grid-row:auto}
  .route-event-form .event-selected-table tbody>tr>td::before{margin-bottom:4px}
  .event-participation-overview .participation-stats{grid-template-columns:minmax(0,1fr)}
}

/* V14.29.0.15 - idoneita presenza/tesseramento nei report e modulo preventivo */
.report-participant-table .attendance-status{display:block;margin-top:6px;white-space:normal;max-width:210px}
.report-participant-table .name-col>.status{margin-top:6px;margin-right:4px;white-space:normal}
.choice-card.is-disabled{opacity:.65}
.choice-card.is-disabled input:disabled+span{cursor:not-allowed}

/* V14.29.0.22: stili della landing pubblica; il nome classe route-login resta interno per compatibilità CSS. */
.app-public.route-login .public-login-landing{display:grid;gap:22px;place-items:stretch;width:100%}
.app-public.route-login .public-login-landing>.login-entry-grid{margin-inline:auto}
.app-public.route-login .public-login-info-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.app-public.route-login .public-login-info-grid .panel{height:100%}
.app-public.route-login .public-login-security{margin:0}
@media(max-width:900px){.app-public.route-login .public-login-info-grid{grid-template-columns:1fr}}


/* V14.29.0.23 - landing pubblica in normale flusso documento: footer dopo il contenuto. */
.app-public.route-login{
  height:auto!important;
  min-height:100svh;
  overflow:visible!important;
  display:block;
}
.app-public.route-login>.main{
  display:block;
  min-height:0;
  padding-top:22px;
  padding-bottom:56px;
}
.app-public.route-login .login-shell{
  min-height:auto;
  width:100%;
  align-items:start;
}
.app-public.route-login footer,
.app-public.route-login .ecl-app-footer{
  position:static!important;
  inset:auto!important;
}
