@import url('https://cdn.jsdelivr.net/npm/@fontsource/manrope@5.1.1/400.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/manrope@5.1.1/500.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/manrope@5.1.1/600.css');
@import url('https://cdn.jsdelivr.net/npm/@fontsource/manrope@5.1.1/700.css');

:root{
  --navy:#082f67;
  --navy-dark:#04152f;
  --cyan:#10d9d2;
  --pink:#ff2f92;
  --yellow:#ffd21c;
  --ink:#10233f;
  --muted:#647890;
  --line:#dce7f2;
  --bg:#eef5fb;
  --card:#fff;
  --success:#0c9c79;
  --danger:#c73d55;
  --shadow:0 18px 55px rgba(7,31,66,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased}
a{color:inherit}img{max-width:100%;height:auto;display:block}button,input,select{font:inherit}.admin-container{width:min(1440px,calc(100% - 36px));margin:auto}

.admin-login{min-height:100vh;display:grid;place-items:center;padding:30px;background:radial-gradient(circle at 15% 18%,rgba(16,217,210,.18),transparent 24rem),radial-gradient(circle at 86% 82%,rgba(255,47,146,.10),transparent 26rem),linear-gradient(145deg,#f9fcff,#e8f2fb)}
.login-shell{width:min(520px,100%);display:block;background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;box-shadow:0 30px 100px rgba(7,31,66,.18)}
.login-brand{padding:52px;color:#fff;background:radial-gradient(circle at 90% 8%,rgba(16,217,210,.25),transparent 19rem),linear-gradient(155deg,var(--navy),var(--navy-dark));position:relative;overflow:hidden}
.login-brand:after{content:"SCH";position:absolute;right:-24px;bottom:-20px;font-size:9rem;line-height:1;font-weight:900;letter-spacing:-.08em;color:rgba(255,255,255,.035)}
.login-brand img{width:190px;height:auto;margin-bottom:50px}.login-brand h1{font-size:clamp(2.4rem,5vw,4.4rem);letter-spacing:-.055em;line-height:.98;margin:0 0 18px}.login-brand p{color:#bed0e4;max-width:470px;line-height:1.65}.login-feature{display:flex;align-items:center;gap:10px;margin-top:16px;color:#dce8f3;font-weight:700}.login-dot{width:10px;height:10px;border-radius:50%;background:var(--cyan);box-shadow:0 0 0 5px rgba(16,217,210,.13)}
.login-form-wrap{padding:52px;display:flex;flex-direction:column;justify-content:center}.login-form-wrap h2{font-size:2rem;letter-spacing:-.04em;margin:0 0 7px}.login-form-wrap>p{color:var(--muted);margin:0 0 28px}.login-field{margin-bottom:18px}.login-field label{display:block;font-weight:800;margin-bottom:8px}.login-field input{width:100%;border:1px solid #cddceb;background:#fbfdff;border-radius:14px;padding:14px 15px;outline:none}.login-field input:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(16,217,210,.12);background:#fff}.login-submit{width:100%;border:0;border-radius:14px;min-height:52px;background:linear-gradient(135deg,var(--cyan),#67efe9);color:#05203d;font-weight:900;cursor:pointer;box-shadow:0 14px 32px rgba(16,217,210,.22)}.login-alert{padding:13px 14px;margin-bottom:18px;border-radius:13px;background:#fff0f3;border:1px solid #efc4cd;color:#8c273a;font-weight:700}.login-back{margin-top:18px;text-align:center;color:var(--muted);font-size:.9rem}.login-back a{text-decoration:none;color:var(--navy);font-weight:800}

.admin-topbar{position:sticky;top:0;z-index:30;background:rgba(248,252,255,.9);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}.admin-nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}.admin-brand{display:flex;align-items:center;gap:13px;text-decoration:none}.admin-brand img{width:142px;height:auto}.admin-brand span{padding-left:13px;border-left:1px solid #cfdce9;color:var(--muted);font-size:.88rem;font-weight:800}.admin-nav-actions{display:flex;align-items:center;gap:9px}.admin-user{color:var(--muted);font-size:.9rem}.admin-btn{border:0;display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 15px;border-radius:12px;text-decoration:none;font-weight:850;cursor:pointer}.admin-btn-dark{background:var(--navy-dark);color:#fff}.admin-btn-cyan{background:var(--cyan);color:#05203d}.admin-btn-light{background:#fff;color:var(--navy);border:1px solid var(--line)}.admin-btn-pink{background:var(--pink);color:#04152f}

.admin-main{padding:34px 0 70px}.admin-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:26px}.admin-eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--pink);font-size:.77rem;font-weight:900;margin-bottom:8px}.admin-hero h1{font-size:clamp(2rem,4vw,3.8rem);line-height:1;letter-spacing:-.05em;margin:0}.admin-hero p{color:var(--muted);margin:10px 0 0}.admin-hero-actions{display:flex;gap:9px;flex-wrap:wrap}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:var(--shadow);position:relative;overflow:hidden}.stat-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--cyan)}.stat-card:nth-child(2):before{background:var(--yellow)}.stat-card:nth-child(3):before{background:var(--pink)}.stat-card:nth-child(4):before{background:var(--navy)}.stat-label{color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;font-weight:850}.stat-value{font-size:2.15rem;line-height:1.1;letter-spacing:-.05em;font-weight:900;margin:8px 0 4px}.stat-note{color:#8294a9;font-size:.83rem}
.chart-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}.panel{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow);overflow:hidden}.panel-head{padding:20px 22px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:16px}.panel-head h2{font-size:1.05rem;margin:0}.panel-head p{color:var(--muted);font-size:.84rem;margin:4px 0 0}.panel-body{padding:22px}.chart-box{height:300px;position:relative}.chart-empty{height:300px;display:grid;place-items:center;color:var(--muted);text-align:center;background:#f8fbfe;border-radius:15px}
.table-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.search-box{position:relative;min-width:min(390px,100%)}.search-box input{width:100%;border:1px solid #cfddea;border-radius:12px;padding:11px 14px 11px 39px;outline:none;background:#fbfdff}.search-box input:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(16,217,210,.1)}.search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#8aa0b8;font-size:1rem}.table-wrap{overflow:auto}.admin-table{width:100%;border-collapse:collapse;min-width:980px}.admin-table th{position:sticky;top:0;background:#f7fafd;color:#70839a;text-transform:uppercase;letter-spacing:.07em;font-size:.73rem;text-align:left;padding:13px 14px;border-bottom:1px solid var(--line)}.admin-table td{padding:14px;border-bottom:1px solid #edf2f7;font-size:.9rem;vertical-align:top}.admin-table tr:hover td{background:#fbfdff}.badge{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:999px;background:#eafcf9;color:#087d76;font-size:.78rem;font-weight:850}.badge-navy{background:#edf3fb;color:var(--navy)}.cell-muted{color:var(--muted)}.cell-clamp{max-width:260px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.table-empty{padding:46px 20px;text-align:center;color:var(--muted)}

.detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.detail-item{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfdff}.detail-item.full{grid-column:1/-1}.detail-label{display:block;color:#71849b;text-transform:uppercase;letter-spacing:.07em;font-size:.72rem;font-weight:900;margin-bottom:6px}.detail-value{white-space:pre-wrap;word-break:break-word}.detail-back{margin-bottom:20px}.notice{padding:18px 20px;border-radius:16px;border:1px solid #f0d2a5;background:#fff8e9;color:#755219;margin-bottom:20px}.notice strong{display:block;margin-bottom:4px}

@media(max-width:1050px){.stats-grid{grid-template-columns:repeat(2,1fr)}.chart-grid{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:720px){.admin-container{width:min(100% - 24px,1440px)}.admin-brand span,.admin-user{display:none}.admin-brand img{width:125px}.admin-nav-actions .admin-btn-light{display:none}.admin-hero{align-items:flex-start;flex-direction:column}.stats-grid{grid-template-columns:1fr}.detail-grid{grid-template-columns:1fr}.detail-item.full{grid-column:auto}.login-form-wrap{padding:32px 24px}.admin-main{padding-top:24px}.chart-box{height:260px}}
.badge-ok{background:#e8fbf4;color:#08785c}.badge-warn{background:#fff3d8;color:#8b6500}.admin-table a[href^="mailto:"]{color:var(--navy);font-weight:700;text-decoration:none}.admin-table a[href^="mailto:"]:hover{text-decoration:underline}.town-pills{display:flex;flex-wrap:wrap;gap:10px}.town-pills span{display:inline-flex;align-items:center;gap:10px;padding:9px 10px 9px 14px;border:1px solid var(--line);border-radius:999px;background:#f8fbfe}.town-pills strong{font-size:.88rem}.town-pills em{font-style:normal;display:grid;place-items:center;min-width:28px;height:28px;padding:0 7px;border-radius:999px;background:var(--cyan);color:#04203e;font-weight:900;font-size:.78rem}

/* Gestione ciclo di vita contatti */
.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}
.status-overview{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:0 0 18px}.status-filter{min-height:64px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 15px;cursor:pointer;box-shadow:0 8px 26px rgba(7,31,66,.05);transition:.18s ease}.status-filter:hover,.status-filter.is-active{transform:translateY(-2px);border-color:#b9cde0;box-shadow:0 12px 30px rgba(7,31,66,.09)}.status-filter.is-active{outline:3px solid rgba(16,217,210,.16)}.status-filter span{font-size:.82rem;font-weight:850}.status-filter strong{font-size:1.25rem}.status-filter.badge-status-new{border-left:4px solid #2b75d6}.status-filter.badge-status-todo{border-left:4px solid #e69a00}.status-filter.badge-status-done{border-left:4px solid #0c9c79}.status-filter.badge-status-off{border-left:4px solid #79889a}
.inline-status-form{display:flex;align-items:center;gap:7px;min-width:250px}.status-select{min-height:38px;border:1px solid #cfddea;border-radius:10px;background:#fff;padding:0 30px 0 10px;color:var(--ink);font-size:.82rem;font-weight:780;outline:none}.status-select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,217,210,.12)}.admin-btn-compact{min-height:38px;padding:0 11px;background:#eef5fb;color:var(--navy);border:1px solid #d7e3ee;font-size:.78rem}.badge-status-new{background:#eaf3ff;color:#17589c}.badge-status-todo{background:#fff4d6;color:#825d00}.badge-status-done{background:#e8fbf4;color:#08785c}.badge-status-off{background:#edf1f5;color:#536272}.badge-lg{min-height:34px;padding:0 13px;font-size:.86rem}.management-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.status-detail-form label{display:block;font-weight:850;margin-bottom:8px}.status-detail-controls{display:flex;gap:10px;align-items:center}.status-detail-controls .status-select{min-height:44px;flex:1}.danger-panel{border-color:#f0c6cd}.danger-panel .panel-head{background:#fff8f9}.danger-zone{display:flex;align-items:center;justify-content:space-between;gap:20px}.danger-zone strong,.danger-zone h2{color:#8f283b}.danger-zone p{margin:5px 0 0;color:var(--muted)}.admin-btn-danger{background:#b93249;color:#fff}.admin-btn-danger:hover{background:#9f263b}.notice-success{border-color:#b8e6d6;background:#ebfaf5;color:#126049}.notice-danger{border-color:#efc2ca;background:#fff0f3;color:#85273a}.notice-warning{border-color:#f0d2a5;background:#fff8e9;color:#755219}.retention-disabled{display:flex;gap:20px;align-items:flex-start}.retention-disabled h2{margin:0 0 8px}.retention-disabled p{color:var(--muted);margin:7px 0}.retention-disabled code{background:#eef4f8;border:1px solid #dae5ef;border-radius:6px;padding:2px 5px;color:var(--navy)}.retention-icon{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:#fff5cf;font-size:1.5rem;flex:0 0 auto}.retention-stats{grid-template-columns:repeat(3,1fr)}.stat-value-date{font-size:1.45rem;margin-top:13px}

@media(max-width:1050px){.status-overview{grid-template-columns:repeat(3,1fr)}.management-grid{grid-template-columns:1fr}.retention-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.status-overview{grid-template-columns:1fr 1fr}.status-filter:first-child{grid-column:1/-1}.danger-zone,.status-detail-controls,.retention-disabled{align-items:stretch;flex-direction:column}.retention-stats{grid-template-columns:1fr}.inline-status-form{min-width:220px}}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--yellow);outline-offset:3px}

/* Cronologia gestionale contatti */
.activity-grid-admin{display:grid;grid-template-columns:.9fr 1.1fr;gap:18px;margin-top:18px}.activity-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px}.activity-field{display:grid;gap:7px}.activity-field.full{grid-column:1/-1}.activity-field label{font-size:.82rem;font-weight:850;color:var(--ink)}.activity-field input,.activity-field select,.activity-field textarea{width:100%;border:1px solid #cfddea;border-radius:12px;background:#fbfdff;color:var(--ink);padding:11px 12px;outline:none;resize:vertical}.activity-field input:focus,.activity-field select:focus,.activity-field textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(16,217,210,.10);background:#fff}.activity-timeline{display:grid;gap:0}.activity-entry{display:grid;grid-template-columns:18px 1fr;gap:12px;position:relative;padding-bottom:22px}.activity-entry:last-child{padding-bottom:0}.activity-entry:before{content:"";position:absolute;left:7px;top:12px;bottom:-2px;width:2px;background:#dce7f2}.activity-entry:last-child:before{display:none}.activity-marker{width:16px;height:16px;border-radius:50%;background:var(--cyan);border:4px solid #dff9f7;position:relative;z-index:1;margin-top:2px}.activity-entry-body{min-width:0}.activity-entry-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.activity-entry-head strong{font-size:.94rem;color:var(--navy)}.activity-entry-head time{font-size:.78rem;color:var(--muted);white-space:nowrap}.activity-entry p{margin:7px 0 0;color:#50657e;line-height:1.55;word-break:break-word}.activity-empty{padding:22px;border-radius:14px;background:#f8fbfe;color:var(--muted);text-align:center}.session-note{font-size:.78rem;color:var(--muted);margin-top:10px}
@media(max-width:1050px){.activity-grid-admin{grid-template-columns:1fr}}
@media(max-width:720px){.activity-form-grid{grid-template-columns:1fr}.activity-field.full{grid-column:auto}.activity-entry-head{align-items:flex-start;flex-direction:column;gap:4px}}

/* Account, audit e gestione avanzata cronologia */
.admin-container-narrow{max-width:980px}.activity-meta{margin-top:5px;color:#8a9bb0;font-size:.76rem}.activity-actions{display:flex;align-items:center;gap:8px;margin-top:12px}.activity-actions form{margin:0}.form-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.account-summary{margin-bottom:18px}.account-form-grid{margin-bottom:18px}.audit-table{min-width:1180px}.audit-table td{vertical-align:middle}.audit-table td:nth-child(6){min-width:280px;white-space:normal}.admin-btn-compact.admin-btn-danger{border-color:#b93249}
@media(max-width:720px){.activity-actions{align-items:stretch;flex-direction:column}.activity-actions .admin-btn,.activity-actions form,.activity-actions form button{width:100%}.form-actions{align-items:stretch;flex-direction:column}.form-actions .admin-btn{width:100%}}

/* Gestione utenti e filtro questionari */
.admin-btn[disabled],.admin-btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.account-users-panel{margin-top:18px}.account-users-table{min-width:820px}.account-users-table form{margin:0}.questionnaire-filter-bar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 26px rgba(7,31,66,.05)}.questionnaire-filter-copy strong{display:block;color:var(--navy);font-size:.92rem}.questionnaire-filter-copy span{display:block;color:var(--muted);font-size:.8rem;margin-top:3px}.questionnaire-filter-form{display:flex;align-items:center;gap:10px}.questionnaire-filter-form label{font-size:.78rem;font-weight:850;color:#71849b;text-transform:uppercase;letter-spacing:.06em}.questionnaire-filter-form select{min-width:250px;min-height:42px;border:1px solid #cfddea;border-radius:11px;background:#fbfdff;color:var(--ink);padding:0 34px 0 12px;outline:none;font-weight:720}.questionnaire-filter-form select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,217,210,.12)}
@media(max-width:720px){.questionnaire-filter-bar{align-items:stretch;flex-direction:column}.questionnaire-filter-form{align-items:stretch;flex-direction:column}.questionnaire-filter-form select{min-width:0;width:100%}}

/* Ricerca server-side, paginazione e statistiche interne */
.questionnaire-filter-form{flex-wrap:wrap;justify-content:flex-end}
.questionnaire-filter-form .filter-search{min-width:260px;min-height:42px;border:1px solid #cfddea;border-radius:11px;background:#fbfdff;color:var(--ink);padding:0 12px;outline:none}
.questionnaire-filter-form .filter-search:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,217,210,.12)}
.status-filter{text-decoration:none}
.pagination{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;border-top:1px solid var(--line);background:#fbfdff}
.pagination-info{color:var(--muted);font-size:.84rem}
.pagination-links{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.pagination-link{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);font-weight:850;text-decoration:none}
.pagination-link.is-active{background:var(--navy);border-color:var(--navy);color:#fff}
.pagination-link.is-disabled{opacity:.45;pointer-events:none}
.training-stats .stat-card:nth-child(1):before{background:var(--navy)}
.training-stats .stat-card:nth-child(2):before{background:var(--cyan)}
.training-stats .stat-card:nth-child(3):before{background:var(--pink)}
.training-stats .stat-card:nth-child(4):before{background:var(--yellow)}
@media(max-width:720px){.questionnaire-filter-form{width:100%;justify-content:stretch}.questionnaire-filter-form .filter-search{min-width:0;width:100%}.pagination{align-items:flex-start;flex-direction:column}.pagination-links{width:100%}}

/* Fase 1 piattaforma: anagrafiche e corsi */
.management-panel{margin-top:18px}.management-stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px}.management-search{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.management-search input{min-width:280px;min-height:42px;border:1px solid #cfddea;border-radius:11px;background:#fbfdff;color:var(--ink);padding:0 12px;outline:none}.management-search input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,217,210,.12)}.management-table{min-width:940px}.privacy-check{display:flex;align-items:flex-start;justify-content:center}.privacy-check label{display:flex!important;align-items:center;gap:8px;min-height:44px}.privacy-check input[type="checkbox"]{width:18px;height:18px}.course-layout{align-items:start}.inline-enroll{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-enroll select{min-width:320px;max-width:520px;min-height:42px;border:1px solid #cfddea;border-radius:11px;background:#fbfdff;color:var(--ink);padding:0 12px}.course-enrollment-table{min-width:1220px}.course-enrollment-table form{display:contents}.table-input{width:115px;min-height:38px;border:1px solid #cfddea;border-radius:9px;padding:6px 8px;background:#fff}.table-input-wide{width:260px}.cell-link{display:inline-block;margin-top:5px;color:var(--navy);font-size:.78rem;font-weight:800;text-decoration:none}.cell-link:hover{text-decoration:underline}
@media(max-width:720px){.management-stats{grid-template-columns:1fr;max-width:none}.management-search{width:100%}.management-search input,.inline-enroll select{min-width:0;width:100%}.inline-enroll{align-items:stretch;flex-direction:column}.inline-enroll .admin-btn{width:100%}}
.select2-container--default .select2-selection--single{height:44px;border:1px solid #cfddea;border-radius:12px;background:#fbfdff}.select2-container--default .select2-selection--single .select2-selection__rendered{line-height:42px;padding-left:12px;color:var(--ink)}.select2-container--default .select2-selection--single .select2-selection__arrow{height:42px}.select2-container--default.select2-container--focus .select2-selection--single{border-color:var(--cyan);box-shadow:0 0 0 4px rgba(16,217,210,.10)}

/* Ruoli portale e ciclo di vita logico */
.hero-status-stack{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.lifecycle-panel{margin-top:18px}.lifecycle-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.lifecycle-actions form{margin:0}.lifecycle-table{min-width:1080px}.lifecycle-table form{margin:0}.fieldset-reset{border:0;padding:0;margin:0;min-width:0}.fieldset-reset[disabled]{opacity:.58}.compact-body{padding-top:16px;padding-bottom:16px}.inline-role-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-role-form select{min-width:180px;min-height:38px;border:1px solid #cfddea;border-radius:9px;background:#fff;color:var(--ink);padding:0 10px}.inline-role-form select:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(16,217,210,.12)}
@media(max-width:720px){.hero-status-stack{justify-content:flex-start}.lifecycle-actions,.inline-role-form{align-items:stretch;flex-direction:column}.lifecycle-actions form,.lifecycle-actions .admin-btn,.inline-role-form select,.inline-role-form .admin-btn{width:100%}}

/* Fase 3 - area partecipante e fruizione corsi */
.access-status-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:20px}.access-status-grid>div{padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:#f8fbfe}.access-status-grid .stat-label{display:block;margin-bottom:7px}.participant-access-form{padding-top:4px}.participant-course-table{min-width:1120px}.participant-content-list{display:grid;gap:0}.participant-content-card{display:grid;grid-template-columns:46px 1fr;gap:16px;padding:20px 22px;border-bottom:1px solid var(--line)}.participant-content-card:last-child{border-bottom:0}.participant-content-index{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:#edf3fb;color:var(--navy);font-weight:900}.participant-content-main{min-width:0}.participant-content-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.participant-content-head h3{margin:0 0 4px;font-size:1.04rem}.participant-content-main>p{margin:12px 0;color:#50657e;line-height:1.65}.participant-content-meta{display:flex;gap:14px;flex-wrap:wrap;margin:10px 0 14px;color:var(--muted);font-size:.8rem}.course-description{margin:0;color:#50657e;line-height:1.72}.notice a{font-weight:850;color:inherit}
@media(max-width:720px){.access-status-grid{grid-template-columns:1fr}.participant-content-card{grid-template-columns:1fr}.participant-content-index{width:34px;height:34px}.participant-content-head{flex-direction:column}.participant-content-card .lifecycle-actions{align-items:stretch;flex-direction:column}.participant-content-card .lifecycle-actions a,.participant-content-card .lifecycle-actions form,.participant-content-card .lifecycle-actions button{width:100%}}
.participant-stats{grid-template-columns:repeat(3,minmax(0,1fr));max-width:860px}
@media(max-width:900px){.participant-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.participant-stats{grid-template-columns:1fr}}

/* Fase 4 - gestione sito/news */
.site-content-editor-list{display:grid;gap:16px}
.site-content-editor{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fbfdff;display:grid;gap:14px}
.site-content-editor-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.site-content-editor-head strong{display:block;color:var(--navy);font-size:.95rem}
.site-content-editor-head span{display:block;margin-top:4px;color:var(--muted);font-size:.74rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace}
.site-toggle{display:flex;align-items:center;gap:8px;font-size:.82rem;font-weight:850;white-space:nowrap}
.site-toggle input{width:18px;height:18px}
.site-news-table{min-width:1100px}
.site-news-summary{max-width:460px;margin-top:6px;line-height:1.45}
.site-news-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.site-news-actions form{margin:0}
@media(max-width:720px){.site-content-editor-head{flex-direction:column}.site-news-actions{align-items:stretch;flex-direction:column}.site-news-actions form,.site-news-actions .admin-btn,.site-news-actions form button{width:100%}}

/* Modernizzazione UI 2026-10 - palette SCH invariata */
:root{
  --ease-out:cubic-bezier(.2,.8,.2,1);
  --shadow-soft:0 10px 34px rgba(7,31,66,.07);
  --shadow-hover:0 16px 40px rgba(7,31,66,.11);
}
.admin-btn,.stat-card,.panel,.status-filter,.participant-course-card,.participant-content-card{transition:transform .18s var(--ease-out),box-shadow .18s var(--ease-out),border-color .18s var(--ease-out),background-color .18s var(--ease-out),opacity .18s var(--ease-out)}
.admin-btn:not([disabled]):hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(7,31,66,.10)}
.admin-btn:not([disabled]):active{transform:translateY(0)}
.admin-btn svg{width:17px;height:17px;flex:0 0 auto}.admin-btn-compact svg{width:15px;height:15px}
.admin-btn-danger{background:var(--danger);color:#fff;border:1px solid var(--danger)}
.admin-btn-danger:hover{background:#b7334a}
.admin-btn.is-loading{pointer-events:none;opacity:.65}
.admin-btn.is-loading:after{content:"";width:14px;height:14px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:sch-spin .7s linear infinite}
@keyframes sch-spin{to{transform:rotate(360deg)}}

/* Badge semantici */
.badge-success,.badge-ok{background:#e8fbf4;color:#08785c}
.badge-info,.badge-navy{background:#edf3fb;color:var(--navy)}
.badge-warning,.badge-warn,.badge-status-todo{background:#fff3d8;color:#8b6500}
.badge-muted,.badge-status-off{background:#eef2f6;color:#62758a}
.badge-danger{background:#fff0f3;color:#a52e43}
.badge-lg{min-height:32px;padding:0 12px;font-size:.82rem}

/* Empty states */
.empty-state{padding:44px 24px;text-align:center;color:var(--muted);display:grid;justify-items:center;gap:10px}
.empty-state-icon{width:48px;height:48px;border-radius:16px;background:#f1f6fb;color:var(--navy);display:grid;place-items:center}
.empty-state-icon svg{width:23px;height:23px}
.empty-state strong{color:var(--ink);font-size:1rem}.empty-state p{margin:0;max-width:520px;line-height:1.55}
.table-empty{padding:0}.table-empty>.empty-state{padding:38px 18px}

/* Tooltip informativi */
.info-tip{width:26px;height:26px;padding:0;border:1px solid var(--line);border-radius:999px;background:#f8fbfe;color:var(--navy);display:inline-grid;place-items:center;cursor:help;vertical-align:middle;margin-left:6px}
.info-tip svg{width:15px;height:15px}
.sch-tooltip-anchor{position:relative}
.sch-tooltip{position:absolute;z-index:50;left:50%;bottom:calc(100% + 10px);width:min(320px,72vw);padding:10px 12px;border-radius:12px;background:var(--navy-dark);color:#fff;font-size:.78rem;line-height:1.45;font-weight:600;box-shadow:0 12px 28px rgba(4,21,47,.24);opacity:0;transform:translate(-50%,5px);pointer-events:none;transition:.16s ease}
.sch-tooltip-anchor:hover .sch-tooltip,.sch-tooltip-anchor:focus .sch-tooltip{opacity:1;transform:translate(-50%,0)}

/* Progress */
.progress-wrap{display:grid;gap:7px;min-width:130px}.progress-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.78rem;color:var(--muted)}
.progress-track{height:8px;border-radius:999px;background:#e8eff6;overflow:hidden}.progress-bar{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),#68eee8);transition:width .45s var(--ease-out)}
.progress-bar.is-complete{background:var(--success)}
.course-progress-feature{padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(135deg,#fff,#f7fbff);margin-bottom:18px;box-shadow:var(--shadow-soft)}
.course-progress-feature .progress-track{height:12px}.course-progress-feature strong{font-size:1.05rem}.course-progress-feature .progress-meta{font-size:.88rem}

/* Area partecipante: card corsi */
.participant-course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:20px}
.participant-course-grid.is-single{grid-template-columns:minmax(0,620px)}
.participant-course-card{position:relative;display:flex;flex-direction:column;min-height:245px;padding:22px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(145deg,#fff,#fbfdff);text-decoration:none;box-shadow:var(--shadow-soft);overflow:hidden}
.participant-course-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--cyan)}
.participant-course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover);border-color:#c6d8e9}
.participant-course-card.is-disabled{opacity:.72;pointer-events:none}.participant-course-card.is-disabled:before{background:#aebdca}
.course-card-top{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.course-card-icon{width:44px;height:44px;border-radius:14px;background:#edf8f8;color:#067a75;display:grid;place-items:center}.course-card-icon svg{width:22px;height:22px}
.course-card-title{margin:16px 0 5px;font-size:1.22rem;letter-spacing:-.025em}.course-card-sub{color:var(--muted);font-size:.88rem}.course-card-period{margin:14px 0;color:#71849b;font-size:.82rem}
.course-card-bottom{margin-top:auto;padding-top:16px;display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.course-card-action{display:inline-flex;align-items:center;gap:7px;color:var(--navy);font-weight:850;font-size:.88rem}.course-card-action svg{width:17px;height:17px}

/* Area partecipante: navigazione e password */
.admin-btn-current{background:#edf8f8;border-color:#bfe5e2;color:var(--navy);cursor:default;box-shadow:inset 0 0 0 1px rgba(16,217,210,.08)}
.admin-btn-disabled{opacity:.55;cursor:not-allowed;pointer-events:none}
.password-field-wrap{position:relative;width:100%}.password-field-wrap input{padding-right:50px}.password-toggle{position:absolute;top:50%;right:6px;transform:translateY(-50%);width:38px;height:38px;border:0;border-radius:10px;background:transparent;color:#71849b;display:grid;place-items:center;cursor:pointer;transition:background-color .18s var(--ease-out),color .18s var(--ease-out)}.password-toggle:hover{background:#edf8f8;color:var(--navy)}.password-toggle:focus-visible{outline:3px solid rgba(16,217,210,.20);outline-offset:1px}.password-toggle svg{width:18px;height:18px}

/* Monitoraggio admin */
.monitor-progress{min-width:150px}.monitor-person{display:grid;gap:3px}.monitor-person strong{font-size:.92rem}.monitor-person .cell-link{width:max-content}

/* Pannelli più puliti */
.panel,.stat-card{box-shadow:var(--shadow-soft)}.panel:hover,.stat-card:hover{box-shadow:var(--shadow-hover)}
.panel-head h2{display:flex;align-items:center;gap:6px}.panel-head p{line-height:1.45}.admin-hero h1{max-width:980px}

/* Tom Select coerente con SCH */
.ts-wrapper{min-width:220px}.ts-control{min-height:42px;border:1px solid #cfddea!important;border-radius:11px!important;background:#fbfdff!important;color:var(--ink)!important;padding:9px 38px 9px 12px!important;box-shadow:none!important}.ts-wrapper.focus .ts-control{border-color:var(--cyan)!important;box-shadow:0 0 0 3px rgba(16,217,210,.12)!important}.ts-dropdown{border:1px solid var(--line)!important;border-radius:12px!important;overflow:hidden;box-shadow:0 18px 44px rgba(7,31,66,.14)!important}.ts-dropdown .active{background:#edf8f8!important;color:var(--navy)!important}.ts-dropdown-input{border-color:var(--line)!important;border-radius:9px!important}

/* Flatpickr palette */
.flatpickr-calendar{border:1px solid var(--line)!important;border-radius:16px!important;box-shadow:0 18px 48px rgba(7,31,66,.16)!important;overflow:hidden}.flatpickr-day.selected,.flatpickr-day.startRange,.flatpickr-day.endRange{background:var(--navy)!important;border-color:var(--navy)!important}.flatpickr-day.today{border-color:var(--cyan)!important}.flatpickr-day:hover{background:#edf8f8!important;border-color:#edf8f8!important}

/* SweetAlert2 */
.sch-swal-popup{border-radius:22px!important;padding:26px!important;font-family:Inter,ui-sans-serif,system-ui,sans-serif!important}.sch-swal-confirm,.sch-swal-confirm-danger,.sch-swal-cancel{min-height:42px;padding:0 16px;border:0;border-radius:11px;font-weight:850;cursor:pointer;margin:4px}.sch-swal-confirm{background:var(--cyan);color:#05203d}.sch-swal-confirm-danger{background:var(--danger);color:#fff}.sch-swal-cancel{background:#eef3f7;color:var(--navy)}.sch-toast{border-radius:15px!important;border:1px solid var(--line)!important;box-shadow:0 16px 44px rgba(7,31,66,.16)!important;font-family:Inter,ui-sans-serif,system-ui,sans-serif!important}

/* Mobile navigation */
.admin-nav-toggle{display:none;width:44px;height:44px;border:1px solid var(--line);border-radius:12px;background:#fff;place-items:center;align-content:center;gap:4px;cursor:pointer}.admin-nav-toggle span{display:block;width:19px;height:2px;border-radius:999px;background:var(--navy);transition:.18s ease}.admin-nav-toggle.is-open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.admin-nav-toggle.is-open span:nth-child(2){opacity:0}.admin-nav-toggle.is-open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}

/* Responsive tables -> card */
@media(max-width:760px){
  .participant-course-grid,.participant-course-grid.is-single{grid-template-columns:1fr;padding:14px}
  .admin-nav{position:relative}.admin-nav-toggle{display:grid;margin-left:auto}.admin-nav-actions{display:none;position:absolute;left:0;right:0;top:calc(100% + 1px);padding:14px 12px;background:rgba(248,252,255,.98);border-bottom:1px solid var(--line);box-shadow:0 18px 36px rgba(7,31,66,.12);flex-direction:column;align-items:stretch;gap:8px}.admin-nav-actions.is-open{display:flex}.admin-nav-actions .admin-btn,.admin-nav-actions .admin-user{display:flex!important;width:100%;justify-content:flex-start}.admin-nav-actions .admin-user{padding:8px 6px}
  .table-wrap{overflow:visible}.admin-table{min-width:0;width:100%}.admin-table thead{display:none}.admin-table tbody{display:grid;gap:12px;padding:12px}.admin-table tr{display:block;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:0 8px 22px rgba(7,31,66,.05);overflow:hidden}.admin-table td{display:grid;grid-template-columns:minmax(105px,36%) 1fr;gap:12px;align-items:start;padding:11px 13px;border-bottom:1px solid #edf2f7!important;background:#fff!important;min-width:0!important;width:auto!important}.admin-table td:last-child{border-bottom:0!important}.admin-table td:before{content:attr(data-label);font-size:.7rem;line-height:1.35;text-transform:uppercase;letter-spacing:.055em;font-weight:900;color:#71849b}.admin-table td[colspan]{display:block;text-align:center}.admin-table td[colspan]:before{display:none}.admin-table .lifecycle-actions,.admin-table .inline-status-form{width:100%}.admin-table input,.admin-table select,.admin-table .table-input,.admin-table .table-input-wide{max-width:none;width:100%}.course-enrollment-table,.management-table,.participant-course-table,.lifecycle-table{min-width:0}
  .participant-course-card{min-height:220px}.course-card-bottom{align-items:stretch;flex-direction:column}.progress-wrap{min-width:0;width:100%}
  .sch-tooltip{left:auto;right:0;transform:translateY(5px)}.sch-tooltip-anchor:hover .sch-tooltip,.sch-tooltip-anchor:focus .sch-tooltip{transform:translateY(0)}
}
@media(max-width:560px){.admin-container{width:min(100% - 20px,1440px)}.admin-nav{min-height:68px}.admin-brand img{width:116px}.admin-main{padding:20px 0 48px}.admin-hero{margin-bottom:18px}.admin-hero h1{font-size:clamp(2rem,12vw,3rem)}.panel-head,.panel-body{padding:17px}.participant-course-grid{padding:12px}.participant-course-card{padding:18px}.admin-table td{grid-template-columns:1fr;gap:4px}.admin-table td:before{margin-bottom:2px}}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
.training-overview{margin-bottom:18px}.training-stats{margin-bottom:0}.training-chart-wrap{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.training-chart-copy{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:12px}.training-chart-copy strong{color:var(--ink)}.training-chart-copy span{color:var(--muted);font-size:.82rem}.training-chart-box{height:260px}
@media(max-width:720px){.training-chart-copy{align-items:flex-start;flex-direction:column}.training-chart-box{height:230px}}
.sch-page-skeleton{position:fixed;inset:76px 0 0;z-index:25;background:rgba(238,245,251,.72);backdrop-filter:blur(2px);pointer-events:none;padding:34px}.sch-skeleton-shell{width:min(920px,90vw);margin:auto;display:grid;gap:14px}.sch-skeleton-shell span{display:block;height:82px;border-radius:18px;background:linear-gradient(90deg,rgba(255,255,255,.58) 25%,rgba(255,255,255,.96) 42%,rgba(255,255,255,.58) 58%);background-size:220% 100%;animation:sch-shimmer 1.15s linear infinite}.sch-skeleton-shell span:first-child{height:120px}.sch-skeleton-shell span:last-child{height:210px}@keyframes sch-shimmer{to{background-position:-220% 0}}
@media(max-width:760px){.sch-page-skeleton{inset:68px 0 0;padding:20px 12px}}


/* Dashboard formazione: feed operativi */
.training-dashboard-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.training-mini-panel{min-width:0;border:1px solid var(--line);border-radius:18px;background:linear-gradient(145deg,#fff,#fbfdff);overflow:hidden;box-shadow:0 8px 24px rgba(7,31,66,.045)}
.training-mini-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--line)}
.training-mini-head h3{margin:0;font-size:1rem;letter-spacing:-.015em}.training-mini-head p{margin:4px 0 0;color:var(--muted);font-size:.8rem;line-height:1.45}.training-mini-head>svg{width:21px;height:21px;color:var(--navy);flex:0 0 auto}
.training-feed-list{display:grid}.training-feed-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-height:70px;padding:12px 15px;border-bottom:1px solid #edf2f7;text-decoration:none;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}.training-feed-item:last-child{border-bottom:0}.training-feed-item:not(.is-static):hover{background:#f7fbff;transform:translateX(2px)}
.training-feed-icon{width:36px;height:36px;border-radius:12px;background:#eef9f8;color:#087d76;display:grid;place-items:center;flex:0 0 auto}.training-feed-icon svg{width:18px;height:18px}.training-feed-main{min-width:0;display:grid;gap:3px}.training-feed-main strong{min-width:0;font-size:.87rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-feed-main small{min-width:0;color:var(--muted);font-size:.75rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-feed-item time{color:#7a8da4;font-size:.73rem;white-space:nowrap}
.training-monitor-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,210px);gap:14px;align-items:center;padding:13px 15px;border-bottom:1px solid #edf2f7;text-decoration:none;transition:background .18s var(--ease-out),transform .18s var(--ease-out)}.training-monitor-item:last-child{border-bottom:0}.training-monitor-item:hover{background:#f7fbff;transform:translateX(2px)}.training-monitor-copy{min-width:0;display:grid;gap:3px}.training-monitor-copy strong{font-size:.87rem}.training-monitor-copy small{color:var(--muted);font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-monitor-progress{display:grid;gap:5px}.training-monitor-progress>span:first-child{display:flex;justify-content:space-between;gap:10px;align-items:center}.training-monitor-progress em{font-style:normal;color:var(--muted);font-size:.7rem}.training-monitor-progress strong{font-size:.78rem}.training-monitor-progress small{color:var(--muted);font-size:.7rem;text-align:right}
.mini-empty{min-height:116px;padding:22px;display:flex;align-items:center;justify-content:center;gap:10px;color:var(--muted);text-align:center}.mini-empty svg{width:22px;height:22px;color:#91a4b8}
@media(max-width:980px){.training-dashboard-grid{grid-template-columns:1fr}}
@media(max-width:620px){.training-dashboard-grid{gap:12px}.training-mini-head{padding:15px}.training-feed-item{grid-template-columns:auto minmax(0,1fr);padding:12px}.training-feed-item .badge,.training-feed-item time{grid-column:2}.training-monitor-item{grid-template-columns:1fr;gap:9px;padding:13px}.training-monitor-progress{width:100%}}

/* Dashboard refinements 2026-10-05 */
.admin-user-compact{display:grid;gap:2px;line-height:1.15;padding:0 3px;min-width:126px}.admin-user-compact strong{color:var(--ink);font-size:.83rem;font-weight:850}.admin-user-compact small{color:var(--muted);font-size:.69rem;font-weight:700;letter-spacing:.02em}
.dashboard-hero{align-items:center}.dashboard-hero h1{font-size:clamp(2.25rem,4vw,3.65rem)}.dashboard-context-actions{justify-content:flex-end}
.dashboard-section-intro{display:flex;align-items:center;gap:16px;margin:26px 0 16px;padding:3px 2px}.dashboard-section-intro .admin-eyebrow{margin-bottom:5px}.dashboard-section-intro h2{margin:0;font-size:clamp(1.65rem,2.5vw,2.3rem);letter-spacing:-.035em}.dashboard-section-intro p{margin:5px 0 0;color:var(--muted);font-size:.9rem}.dashboard-section-icon{width:48px;height:48px;border-radius:15px;background:#eef9f8;color:#087d76;display:grid;place-items:center;flex:0 0 auto}.dashboard-section-icon svg{width:23px;height:23px}
.training-chart-box{height:220px}.training-chart-empty{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(220px,.8fr);align-items:center;gap:16px;min-height:108px;padding:16px 18px;border:1px dashed #cbd9e6;border-radius:16px;background:linear-gradient(145deg,#fbfdff,#f7fbfe)}.training-chart-empty-icon{width:42px;height:42px;border-radius:13px;background:#edf8f8;color:#087d76;display:grid;place-items:center}.training-chart-empty-icon svg{width:21px;height:21px}.training-chart-empty-copy{display:grid;gap:4px;min-width:0}.training-chart-empty-copy strong{font-size:.92rem}.training-chart-empty-copy small{color:var(--muted);font-size:.78rem;line-height:1.4}.training-zero-progress-list{display:grid;gap:6px}.training-zero-progress-list>span{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#fff}.training-zero-progress-list em{font-style:normal;color:var(--ink);font-size:.76rem;font-weight:750;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.training-zero-progress-list strong{font-size:.78rem;color:var(--muted)}
.chart-box-age{height:235px}.age-chart-wrap{display:grid;gap:12px}.age-chart-labels{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:0 8px}.age-chart-label{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;color:var(--ink);font-size:.76rem;font-weight:750;text-align:center;white-space:nowrap}.age-chart-swatch{width:9px;height:9px;border-radius:999px;background:var(--age-swatch);box-shadow:0 0 0 3px color-mix(in srgb,var(--age-swatch) 16%,transparent);flex:0 0 auto}.chart-box-areas{min-height:240px}.chart-empty-compact{height:auto;min-height:190px;display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;padding:24px}.chart-empty-compact svg{width:26px;height:26px;color:#91a4b8}.chart-empty-compact strong{color:var(--ink);font-size:.92rem}.chart-empty-compact span{max-width:380px;color:var(--muted);font-size:.8rem;line-height:1.45}
@media(max-width:980px){.training-chart-empty{grid-template-columns:auto minmax(0,1fr)}.training-zero-progress-list{grid-column:1/-1}}
@media(max-width:840px){.admin-user-compact{min-width:0}.dashboard-hero{align-items:flex-start}.dashboard-context-actions{justify-content:flex-start}.dashboard-section-intro{margin-top:22px}}
@media(max-width:620px){.training-chart-empty{grid-template-columns:1fr;text-align:center}.training-chart-empty-icon{margin:auto}.training-zero-progress-list{grid-column:auto}.dashboard-section-intro{align-items:flex-start}.dashboard-section-icon{width:42px;height:42px;border-radius:13px}.chart-box-age{height:220px}.age-chart-labels{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:10px}.age-chart-label{justify-content:flex-start}}

/* Gestione corsi: riordino contenuti e criteri di completamento */
.drag-handle {
  border: 0;
  background: transparent;
  color: #17324d;
  font-size: 1.25rem;
  line-height: 1;
  cursor: grab;
  padding: .35rem .45rem;
  margin-right: .35rem;
  border-radius: .45rem;
}
.drag-handle:hover { background: rgba(23,50,77,.08); }
.drag-handle:active { cursor: grabbing; }
#course-content-sortable tr.is-dragging { opacity: .48; }
#course-content-sortable tr[data-sortable="1"] { transition: background-color .15s ease, opacity .15s ease; }
.content-order-number { color: #6b7d90; font-size: .82rem; }
.course-capacity-stats { margin-bottom: 1.25rem; }
.course-enrollment-table .status-select { min-width: 145px; }

/* ========================================================================== 
   SCH UI v5 - Area Riservata / Area Partecipante
   ========================================================================== */
body[data-app-shell]{
  --navy:#0b2f5f;
  --navy-dark:#071b34;
  --cyan:#18c8c3;
  --cyan-soft:#e8f9f8;
  --ink:#14243a;
  --muted:#6f8095;
  --line:#e3e9f0;
  --bg:#f5f7fa;
  --card:#fff;
  --success:#18845f;
  --warning:#a66a08;
  --danger:#bd3a4f;
  --shadow:0 1px 2px rgba(12,30,52,.025),0 10px 30px rgba(12,30,52,.045);
  --shadow-soft:0 1px 2px rgba(12,30,52,.025),0 8px 24px rgba(12,30,52,.04);
  --shadow-hover:0 12px 30px rgba(12,30,52,.075);
  --sidebar-width:268px;
  --sidebar-collapsed:80px;
  --topbar-height:70px;
  font-family:Manrope,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  font-weight:400;
  background:var(--bg);
  color:var(--ink);
}
body[data-app-shell] button,
body[data-app-shell] input,
body[data-app-shell] select,
body[data-app-shell] textarea{font-family:inherit}
body[data-app-shell] strong{font-weight:700}
body[data-app-shell] .admin-eyebrow,
body[data-app-shell] .stat-label,
body[data-app-shell] .detail-label{font-weight:700}
body[data-app-shell] .admin-btn,
body[data-app-shell] .badge,
body[data-app-shell] .activity-field label{font-weight:600}
body[data-app-shell] .admin-hero h1{font-weight:700;letter-spacing:-.045em}
body[data-app-shell] .panel-head h2{font-weight:700;letter-spacing:-.02em}
body[data-app-shell].is-navigating{opacity:1}

/* Sidebar + top bar */
.app-shell-ready{padding-left:var(--sidebar-width);transition:padding-left .22s var(--ease-out)}
.app-shell-ready.sidebar-collapsed{padding-left:var(--sidebar-collapsed)}
.app-shell-ready>.admin-topbar{display:none!important}
.app-sidebar{
  position:fixed;inset:0 auto 0 0;z-index:80;width:var(--sidebar-width);padding:18px 14px 14px;
  display:flex;flex-direction:column;background:linear-gradient(180deg,#08274d 0%,#071f3d 100%);
  color:#fff;border-right:1px solid rgba(255,255,255,.05);box-shadow:10px 0 36px rgba(3,20,40,.08);
  transition:width .22s var(--ease-out),transform .22s var(--ease-out);overflow:hidden
}
.app-sidebar-brand{height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 7px 0 8px}
.app-sidebar-brand a{display:block;min-width:0}.app-sidebar-brand img{width:152px;max-width:none;filter:brightness(0) invert(1)}
.app-sidebar-collapse,.app-profile-more,.app-mobile-sidebar-toggle{
  flex:0 0 auto;width:36px;height:36px;border:0;border-radius:10px;display:grid;place-items:center;cursor:pointer
}
.app-sidebar-collapse{background:rgba(255,255,255,.08);color:#d7e8f8}.app-sidebar-collapse:hover{background:rgba(255,255,255,.14);color:#fff}
.app-sidebar-collapse svg{width:17px;height:17px}
.app-sidebar-caption{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:9px 8px 14px;padding-top:13px;border-top:1px solid rgba(255,255,255,.09);white-space:nowrap}
.app-sidebar-caption span{font-size:.74rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#dce8f4}.app-sidebar-caption small{font-size:.66rem;color:#7f9ab5}
.app-sidebar-nav{display:grid;gap:4px;min-height:0;overflow:auto;scrollbar-width:none}.app-sidebar-nav::-webkit-scrollbar{display:none}
.app-nav-group{display:grid;gap:3px;margin-bottom:13px}.app-nav-heading{padding:0 11px 6px;color:#7895b3;font-size:.65rem;line-height:1;text-transform:uppercase;letter-spacing:.12em;font-weight:700;white-space:nowrap}
.app-nav-link{position:relative;min-height:44px;padding:0 11px;border-radius:11px;display:flex;align-items:center;gap:12px;color:#cbd9e7;text-decoration:none;font-size:.86rem;font-weight:500;white-space:nowrap;transition:background .17s ease,color .17s ease,transform .17s ease}
.app-nav-link svg{width:19px;height:19px;flex:0 0 auto;color:#94acc3}.app-nav-link:hover{background:rgba(255,255,255,.07);color:#fff}.app-nav-link:hover svg{color:#d7f8f6}
.app-nav-link.is-active{background:rgba(24,200,195,.14);color:#fff;font-weight:600}.app-nav-link.is-active svg{color:#59e1dc}.app-nav-link.is-active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 4px 4px 0;background:var(--cyan)}
.app-sidebar-spacer{flex:1}.app-nav-external{margin-top:6px;border-top:1px solid rgba(255,255,255,.08);border-radius:0;padding-top:9px;min-height:52px}
.app-sidebar-profile{margin-top:9px;padding:10px 8px 5px;border-top:1px solid rgba(255,255,255,.09);display:grid;grid-template-columns:38px minmax(0,1fr) 32px;gap:10px;align-items:center}
.app-avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#58e0dc,#18c8c3);color:#06294a;display:grid;place-items:center;font-size:.72rem;font-weight:700;letter-spacing:.03em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.app-profile-copy{min-width:0;display:grid;gap:2px}.app-profile-copy strong{font-size:.78rem;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-profile-copy small{font-size:.65rem;color:#87a2bc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-profile-more{background:transparent;color:#91a8be}.app-profile-more:hover{background:rgba(255,255,255,.08);color:#fff}.app-profile-more svg{width:18px;height:18px}
.sidebar-collapsed .app-sidebar{width:var(--sidebar-collapsed);padding-left:11px;padding-right:11px}.sidebar-collapsed .app-sidebar-brand{padding:0;justify-content:center}.sidebar-collapsed .app-sidebar-brand a,.sidebar-collapsed .app-sidebar-caption,.sidebar-collapsed .app-nav-heading,.sidebar-collapsed .app-nav-link span,.sidebar-collapsed .app-profile-copy,.sidebar-collapsed .app-profile-more{display:none}.sidebar-collapsed .app-sidebar-collapse{position:absolute;top:21px;left:22px}.sidebar-collapsed .app-nav-link{justify-content:center;padding:0}.sidebar-collapsed .app-nav-link.is-active:before{left:-11px}.sidebar-collapsed .app-sidebar-profile{grid-template-columns:1fr;padding:10px 0 5px;justify-items:center}.sidebar-collapsed .app-nav-external{padding-top:9px}

.app-topbar{position:fixed;top:0;left:var(--sidebar-width);right:0;z-index:70;height:var(--topbar-height);display:flex;align-items:center;gap:18px;padding:0 24px;background:rgba(255,255,255,.91);backdrop-filter:blur(20px);border-bottom:1px solid rgba(216,225,235,.88);transition:left .22s var(--ease-out)}
.sidebar-collapsed .app-topbar{left:var(--sidebar-collapsed)}
.app-mobile-sidebar-toggle{display:none;background:#f3f6f9;color:var(--navy);border:1px solid var(--line)}.app-mobile-sidebar-toggle svg{width:19px;height:19px}
.app-breadcrumb{min-width:0;display:flex;align-items:center;gap:6px;color:#8a98a9;font-size:.78rem;white-space:nowrap;overflow:hidden}.app-breadcrumb span{max-width:240px;overflow:hidden;text-overflow:ellipsis}.app-breadcrumb span[aria-current="page"]{color:var(--ink);font-weight:600}.app-breadcrumb svg{width:13px;height:13px;flex:0 0 auto;color:#b0bcc8}
.app-command-wrap{position:relative;margin-left:auto;width:min(390px,36vw)}
.app-command-search{height:42px;display:grid;grid-template-columns:18px minmax(0,1fr) auto;align-items:center;gap:9px;padding:0 10px 0 13px;border:1px solid var(--line);border-radius:11px;background:#f7f9fb;transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}
.app-command-search:focus-within{background:#fff;border-color:#a6deda;box-shadow:0 0 0 4px rgba(24,200,195,.09)}.app-command-search>svg{width:17px;height:17px;color:#8495a8}.app-command-search input{width:100%;min-width:0;border:0;outline:0;background:transparent;color:var(--ink);font-size:.8rem}.app-command-search input::placeholder{color:#9aa8b7}.app-command-search kbd{min-width:22px;height:22px;border:1px solid #dce4eb;border-bottom-width:2px;border-radius:6px;display:grid;place-items:center;background:#fff;color:#8b9aaa;font:600 .7rem/1 Manrope,system-ui}
.app-command-results{position:absolute;top:calc(100% + 9px);left:0;right:0;z-index:100;padding:7px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 20px 48px rgba(15,34,58,.15)}.app-command-result{width:100%;min-height:52px;border:0;border-radius:10px;padding:8px 10px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;background:transparent;color:inherit;text-align:left;text-decoration:none;cursor:pointer}.app-command-result:hover{background:#f4f8fa}.app-command-result>svg{width:18px;height:18px;color:var(--navy)}.app-command-result>span{display:grid;gap:2px;min-width:0}.app-command-result strong{font-size:.79rem}.app-command-result small{font-size:.68rem;color:var(--muted)}.app-command-result kbd{font-size:.65rem;color:#8290a0}.app-command-empty{padding:16px;color:var(--muted);font-size:.78rem;text-align:center}
.app-profile-button{height:42px;max-width:210px;padding:0 8px 0 5px;border:1px solid transparent;border-radius:12px;background:transparent;display:flex;align-items:center;gap:9px;color:var(--ink);cursor:pointer}.app-profile-button:hover{background:#f5f8fa;border-color:var(--line)}.app-avatar-small{width:32px;height:32px;border-radius:10px;font-size:.64rem}.app-profile-button-copy{min-width:0;display:grid;gap:1px;text-align:left}.app-profile-button-copy strong{font-size:.74rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-profile-button-copy small{font-size:.62rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-profile-button>svg{width:14px;height:14px;color:#8e9cab}
.app-profile-menu{position:fixed;right:22px;top:61px;z-index:110;width:218px;padding:7px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 20px 50px rgba(14,31,53,.16)}.app-profile-menu a{min-height:42px;padding:0 10px;border-radius:9px;display:flex;align-items:center;gap:10px;text-decoration:none;font-size:.78rem;font-weight:500}.app-profile-menu a:hover{background:#f5f8fa}.app-profile-menu a.is-danger{color:var(--danger)}.app-profile-menu svg{width:17px;height:17px}
.app-sidebar-overlay{display:none}
.app-shell-ready .admin-main{padding:calc(var(--topbar-height) + 28px) 0 62px}.app-shell-ready .admin-container{width:min(1340px,calc(100% - 48px))}

/* Modern visual hierarchy */
body[data-app-shell] .admin-hero{align-items:center;margin-bottom:22px}
body[data-app-shell] .admin-eyebrow{margin-bottom:7px;color:#72849a;letter-spacing:.085em;font-size:.69rem}
body[data-app-shell] .admin-hero h1{font-size:clamp(2rem,3.4vw,3.15rem);line-height:1.03}
body[data-app-shell] .admin-hero p{font-size:.88rem;line-height:1.55;max-width:760px}
body[data-app-shell] .admin-hero-actions{gap:8px}
body[data-app-shell] .admin-btn{min-height:40px;padding:0 13px;border-radius:10px;font-size:.78rem;font-weight:600;box-shadow:none;transition:background .16s ease,border-color .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
body[data-app-shell] .admin-btn:not([disabled]):hover{transform:translateY(-1px);box-shadow:0 6px 15px rgba(14,31,53,.07)}
body[data-app-shell] .admin-btn-cyan{background:var(--cyan);color:#062d4e;border:1px solid var(--cyan)}
body[data-app-shell] .admin-btn-cyan:hover{background:#21d1cc;border-color:#21d1cc}
body[data-app-shell] .admin-btn-light{background:#fff;color:#27415f;border:1px solid #dde5ed}
body[data-app-shell] .admin-btn-light:hover{background:#f7f9fb;border-color:#ccd8e3}
body[data-app-shell] .admin-btn-dark{background:var(--navy-dark);color:#fff}
body[data-app-shell] .admin-btn-pink{background:#fff;color:#27415f;border:1px solid #dde5ed}
body[data-app-shell] .admin-btn-danger{background:#fff;color:var(--danger);border:1px solid #eccbd2}
body[data-app-shell] .admin-btn-danger:hover{background:#fff5f7;border-color:#e4b6c0;color:#a92f43}
body[data-app-shell] .admin-btn-compact{min-height:34px;padding:0 10px;font-size:.72rem;border-radius:9px}

body[data-app-shell] .panel,
body[data-app-shell] .stat-card{border-color:var(--line);border-radius:16px;box-shadow:var(--shadow-soft);background:#fff}
body[data-app-shell] .panel:hover,
body[data-app-shell] .stat-card:hover{box-shadow:var(--shadow-soft);transform:none}
body[data-app-shell] .panel-head{padding:18px 20px;border-bottom-color:#edf1f5}
body[data-app-shell] .panel-body{padding:20px}
body[data-app-shell] .panel-head h2{font-size:1rem}
body[data-app-shell] .panel-head p{font-size:.77rem;color:var(--muted)}

/* KPI compatti e SaaS */
body[data-app-shell] .stats-grid{gap:12px;margin-bottom:16px}
body[data-app-shell] .stat-card{min-height:128px;padding:18px 18px 16px;display:grid;align-content:end;position:relative;overflow:hidden}
body[data-app-shell] .stat-card:before{display:none}
body[data-app-shell] .stat-icon{position:absolute;top:16px;right:16px;width:34px;height:34px;border-radius:10px;background:#f0f7f7;color:#117d79;display:grid;place-items:center}
body[data-app-shell] .stat-icon svg{width:17px;height:17px}
body[data-app-shell] .stat-label{font-size:.67rem;color:#78889a;letter-spacing:.075em}
body[data-app-shell] .stat-value{margin:7px 0 2px;font-size:1.8rem;line-height:1;font-weight:700;letter-spacing:-.04em;color:#122b48}
body[data-app-shell] .stat-note{font-size:.71rem;color:#8b99a8}
body[data-app-shell] .training-overview>.panel-body{padding-top:16px}
body[data-app-shell] .training-dashboard-grid{gap:12px}
body[data-app-shell] .training-mini-panel{border-radius:14px;box-shadow:none;border-color:#e6ebf1}
body[data-app-shell] .training-mini-head{padding:16px 17px}
body[data-app-shell] .training-mini-head h3{font-weight:700;font-size:.9rem}
body[data-app-shell] .training-feed-item{min-height:64px}

/* Tabelle */
body[data-app-shell] .table-wrap{border-radius:0 0 16px 16px;scrollbar-color:#ccd7e1 transparent;scrollbar-width:thin}
body[data-app-shell] .admin-table{font-variant-numeric:tabular-nums}
body[data-app-shell] .admin-table th{z-index:2;padding:12px 15px;background:#f8fafc;color:#7d8b9b;border-bottom:1px solid #e6ebf0;font-size:.65rem;font-weight:700;letter-spacing:.07em}
body[data-app-shell] .admin-table td{padding:15px;border-bottom-color:#eef2f5;font-size:.81rem;vertical-align:middle}
body[data-app-shell] .admin-table tbody tr:last-child td{border-bottom:0}
body[data-app-shell] .admin-table tbody tr:hover td{background:#fafcfd}
body[data-app-shell] .admin-table tbody tr.is-selected td{background:#f0fbfa}
body[data-app-shell] .admin-table a[href^="mailto:"]{font-weight:600}
.table-avatar{width:34px;height:34px;border-radius:10px;background:#edf4f8;color:#31526f;display:grid;place-items:center;flex:0 0 auto;font-size:.65rem;font-weight:700;text-transform:uppercase}
.table-person-wrap{min-width:0;display:grid;gap:2px}.admin-table td:first-child:has(.table-avatar){display:flex;align-items:center;gap:10px}.table-person-wrap strong{font-weight:700}
body[data-app-shell] .badge{position:relative;min-height:24px;padding:0 8px 0 18px;font-size:.67rem;font-weight:600;border:1px solid transparent}
body[data-app-shell] .badge:before{content:"";position:absolute;left:8px;width:5px;height:5px;border-radius:999px;background:currentColor;opacity:.75}
body[data-app-shell] .badge-success,body[data-app-shell] .badge-ok{background:#edf9f4;color:#147453;border-color:#d8eee4}
body[data-app-shell] .badge-info,body[data-app-shell] .badge-navy{background:#eff5fb;color:#24547f;border-color:#dce9f4}
body[data-app-shell] .badge-warning,body[data-app-shell] .badge-warn,body[data-app-shell] .badge-status-todo{background:#fff7e9;color:#956110;border-color:#f2e4c7}
body[data-app-shell] .badge-muted,body[data-app-shell] .badge-status-off{background:#f2f4f6;color:#697788;border-color:#e5e9ed}
body[data-app-shell] .badge-danger{background:#fff2f4;color:#ad3549;border-color:#f1d9de}
.table-select-cell{width:42px!important;min-width:42px!important;padding-left:14px!important;padding-right:4px!important}.row-check{width:20px;height:20px;display:grid;place-items:center;cursor:pointer}.row-check input{position:absolute;opacity:0;pointer-events:none}.row-check span{width:16px;height:16px;border:1.5px solid #b8c4cf;border-radius:5px;background:#fff;display:grid;place-items:center;transition:.15s ease}.row-check input:checked+span{background:var(--navy);border-color:var(--navy);box-shadow:inset 0 0 0 3px #fff}.row-check input:indeterminate+span{background:linear-gradient(#fff,#fff) center/8px 2px no-repeat,var(--navy);border-color:var(--navy)}
.table-selection-toolbar{margin:0 20px 10px;padding:8px 10px 8px 12px;border:1px solid #d9ecea;border-radius:11px;background:#f1fbfa;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#2a5369;font-size:.75rem}.table-selection-toolbar[hidden]{display:none}.table-selection-clear{border:0;border-radius:8px;background:#fff;color:#31526f;padding:7px 10px;cursor:pointer;font:600 .72rem Manrope,system-ui;box-shadow:inset 0 0 0 1px #dce7e6}

/* Menu azioni */
.row-actions-menu{position:relative;display:inline-flex}.row-actions-toggle{width:34px;height:34px;border:1px solid #dce4eb;border-radius:9px;background:#fff;color:#526a82;display:grid;place-items:center;cursor:pointer}.row-actions-toggle:hover{background:#f5f8fa;color:var(--navy)}.row-actions-toggle svg{width:17px;height:17px}
.row-actions-popover{position:absolute;right:0;top:calc(100% + 7px);z-index:40;min-width:185px;padding:6px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 18px 42px rgba(14,31,53,.16)}.row-actions-popover[hidden]{display:none}.row-actions-popover .row-action-item{display:block;width:100%;margin:0}.row-actions-popover .row-action-control{width:100%;min-height:38px!important;justify-content:flex-start!important;border:0!important;background:transparent!important;color:#314a64!important;box-shadow:none!important;border-radius:8px!important;padding:0 10px!important}.row-actions-popover .row-action-control:hover{background:#f5f8fa!important;transform:none!important}.row-actions-popover .admin-btn-danger{color:var(--danger)!important}.admin-table .lifecycle-actions{gap:7px;flex-wrap:nowrap}

/* Filtri */
body[data-app-shell] .management-search input,
body[data-app-shell] .search-box input{min-height:40px;border-radius:10px;border-color:#dbe4ec;background:#f9fbfc;font-size:.78rem}
body[data-app-shell] .status-overview{gap:8px}
body[data-app-shell] .status-filter{min-height:58px;border-radius:12px;padding:10px 13px;box-shadow:none;font-size:.78rem}
body[data-app-shell] .status-filter:hover{transform:none;box-shadow:none;border-color:#cbd8e3;background:#fafcfd}
body[data-app-shell] .status-filter.is-active{outline:0;background:#effaf9;border-color:#bfe6e3;box-shadow:inset 0 0 0 1px rgba(24,200,195,.07)}

/* Form organizzati */
body[data-app-shell] .activity-form-grid{gap:15px 16px;margin-bottom:0}
body[data-app-shell] .activity-field{gap:7px}
body[data-app-shell] .activity-field label{font-size:.75rem;color:#30475f}
body[data-app-shell] .activity-field input,
body[data-app-shell] .activity-field select,
body[data-app-shell] .activity-field textarea,
body[data-app-shell] .table-input,
body[data-app-shell] .status-select,
body[data-app-shell] .inline-role-form select{
  border-color:#d9e2ea;border-radius:10px;background:#fff;color:var(--ink);font-size:.8rem;box-shadow:0 1px 0 rgba(16,38,62,.02)
}
body[data-app-shell] .activity-field input,body[data-app-shell] .activity-field select{min-height:42px}
body[data-app-shell] .activity-field input:focus,body[data-app-shell] .activity-field select:focus,body[data-app-shell] .activity-field textarea:focus,body[data-app-shell] .table-input:focus,body[data-app-shell] .status-select:focus{border-color:#84d8d4;box-shadow:0 0 0 4px rgba(24,200,195,.085);background:#fff}
.form-section-title{grid-column:1/-1;display:grid;gap:3px;padding-top:17px;margin-top:3px;border-top:1px solid #edf1f5}.form-section-title:first-child{padding-top:0;border-top:0;margin-top:0}.form-section-title strong{font-size:.83rem;color:#163453}.form-section-title span,.form-section-title p{margin:0;color:#8997a6;font-size:.7rem;line-height:1.4}
.form-sticky-actions{position:sticky;bottom:14px;z-index:12;margin:20px -4px 0;padding:9px 10px 9px 13px;border:1px solid #dfe7ee;border-radius:12px;background:rgba(255,255,255,.94);backdrop-filter:blur(14px);box-shadow:0 12px 30px rgba(13,31,51,.11);display:flex;align-items:center;justify-content:flex-end;gap:12px}.form-dirty-copy{margin-right:auto;display:flex;align-items:center;gap:7px;color:#8a98a7;font-size:.7rem;opacity:.2;transition:opacity .16s ease,color .16s ease}.form-dirty-copy svg{width:13px;height:13px}.is-dirty .form-dirty-copy{opacity:1;color:#9a6a18}.is-dirty .form-dirty-copy svg{fill:#f0b84c;stroke:#d69b30}

/* Dashboard */
.app-shell-ready .dashboard-hero{padding:4px 0 2px}.app-shell-ready .dashboard-context-actions .admin-btn-pink{background:#fff;color:#27415f;border-color:#dde5ed}.app-shell-ready .dashboard-section-intro{padding-top:4px}.app-shell-ready .dashboard-section-icon{border-radius:12px;background:#eef8f7}.app-shell-ready .training-chart-wrap{border-top-color:#edf1f5}.app-shell-ready .training-chart-box{height:210px}

/* SortableJS */
.drag-handle{width:34px;height:34px;padding:0;margin:0 6px 0 0;border-radius:9px;display:inline-grid;place-items:center;color:#7d8d9e;cursor:grab;vertical-align:middle}.drag-handle:hover{background:#f0f4f7;color:#314b66}.drag-handle:active{cursor:grabbing}.drag-handle svg{width:18px;height:18px}.sortable-ghost{opacity:.26;background:#eaf9f8!important}.sortable-chosen td{background:#f5fbfb!important}.sortable-drag{box-shadow:0 18px 44px rgba(13,31,51,.14);background:#fff!important}.reorder-dirty{box-shadow:0 0 0 4px rgba(24,200,195,.12)!important}

/* Participant app bar */
.participant-shell-ready>.admin-topbar{display:none!important}.participant-shell-ready{background:#f5f8fb}.participant-appbar{position:sticky;top:0;z-index:70;height:70px;padding:0 max(22px,calc((100vw - 1320px)/2));display:flex;align-items:center;gap:30px;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line)}
.participant-brand{display:flex;align-items:center;gap:13px;text-decoration:none}.participant-brand img{width:132px}.participant-brand span{padding-left:12px;border-left:1px solid #dce5ed;color:#728296;font-size:.72rem;font-weight:600;white-space:nowrap}.participant-appnav{display:flex;align-items:center;gap:5px}.participant-appnav a{min-height:38px;padding:0 11px;border-radius:9px;display:flex;align-items:center;gap:7px;color:#65778b;text-decoration:none;font-size:.75rem;font-weight:600}.participant-appnav a:hover{background:#f4f7f9;color:var(--navy)}.participant-appnav a.is-active{background:#ecf8f7;color:#0b5f5c}.participant-appnav svg{width:16px;height:16px}.participant-profile{margin-left:auto;display:flex;align-items:center;gap:9px}.participant-profile>span:not(.app-avatar){display:grid;gap:1px}.participant-profile strong{font-size:.73rem}.participant-profile small{font-size:.62rem;color:var(--muted)}.participant-logout{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;color:#738398}.participant-logout:hover{background:#fff2f4;color:var(--danger)}.participant-logout svg{width:17px;height:17px}
.participant-shell-ready .admin-main{padding:34px 0 62px}.participant-shell-ready .admin-container{width:min(1200px,calc(100% - 42px))}
.participant-shell-ready .admin-hero{margin-bottom:22px}.participant-shell-ready .admin-hero h1{font-size:clamp(2rem,4vw,3.25rem)}

/* Participant dashboard */
.participant-kpi-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-bottom:16px}.participant-kpi{min-height:82px;padding:14px 15px;border:1px solid var(--line);border-radius:13px;background:#fff;display:flex;align-items:center;gap:12px}.participant-kpi-icon{width:36px;height:36px;border-radius:10px;background:#eef8f7;color:#117b77;display:grid;place-items:center}.participant-kpi-icon svg{width:17px;height:17px}.participant-kpi-copy{display:grid;gap:2px}.participant-kpi-copy strong{font-size:1.15rem;line-height:1}.participant-kpi-copy span{font-size:.69rem;color:var(--muted)}
.participant-featured-course{position:relative;overflow:hidden;margin-bottom:18px;padding:28px 30px;border-radius:20px;background:linear-gradient(125deg,#092c58 0%,#0c3b70 61%,#126c7b 100%);color:#fff;box-shadow:0 18px 42px rgba(8,45,87,.14)}.participant-featured-course:after{content:"</>";position:absolute;right:-8px;bottom:-40px;font-size:8rem;font-weight:700;letter-spacing:-.08em;color:rgba(255,255,255,.045);pointer-events:none}.participant-featured-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:34px;align-items:end}.participant-featured-eyebrow{display:flex;align-items:center;gap:8px;margin-bottom:13px;color:#8fe4df;font-size:.69rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}.participant-featured-eyebrow svg{width:16px;height:16px}.participant-featured-course h2{margin:0 0 8px;font-size:clamp(1.65rem,3.2vw,2.5rem);letter-spacing:-.04em}.participant-featured-meta{color:#b8cee0;font-size:.78rem}.participant-featured-progress{display:grid;gap:8px;margin-top:23px}.participant-featured-progress .progress-track{height:9px;background:rgba(255,255,255,.16)}.participant-featured-progress .progress-bar{background:linear-gradient(90deg,#5de5df,#9af1ed)}.participant-featured-progress .progress-meta{color:#c7d9e8}.participant-featured-progress .progress-meta strong{color:#fff}.participant-featured-action{display:flex;justify-content:flex-end}.participant-featured-action .admin-btn{background:#fff;color:#0a315c;border-color:#fff;min-height:44px;padding:0 16px}
.participant-course-section{margin-top:18px}.participant-section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:11px}.participant-section-head h2{margin:0;font-size:1.08rem;letter-spacing:-.02em}.participant-section-head p{margin:4px 0 0;color:var(--muted);font-size:.76rem}.participant-course-grid{padding:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.participant-course-grid.is-single{grid-template-columns:minmax(0,620px)}
.participant-course-card{min-height:220px;padding:19px;border-radius:16px;box-shadow:var(--shadow-soft);border-color:#e1e8ef}.participant-course-card:before{width:3px;background:var(--cyan)}.participant-course-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}.course-card-icon{width:40px;height:40px;border-radius:11px}.course-card-title{margin-top:14px;font-size:1.08rem}.course-card-bottom{padding-top:14px}.course-card-action{font-size:.78rem;font-weight:600}.participant-course-card .progress-meta{font-size:.7rem}

/* Learning journey */
.learning-journey{position:relative;padding:8px 20px 20px}.learning-step{position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);gap:15px}.learning-step:not(:last-child) .learning-step-rail:after{content:"";position:absolute;top:39px;bottom:-10px;left:20px;width:2px;background:#e1e8ee}.learning-step-rail{position:relative;min-height:100%;display:flex;justify-content:center}.learning-step-marker{position:relative;z-index:2;width:38px;height:38px;border-radius:12px;border:1px solid #dbe4eb;background:#fff;color:#6f8194;display:grid;place-items:center;font-size:.72rem;font-weight:700;box-shadow:0 3px 12px rgba(18,39,62,.04)}.learning-step-marker svg{width:17px;height:17px}.learning-step.is-complete .learning-step-marker{background:#eaf8f3;color:#197657;border-color:#ceeade}.learning-step.is-current .learning-step-marker{background:var(--navy);color:#fff;border-color:var(--navy);box-shadow:0 0 0 5px rgba(24,200,195,.10)}.learning-step.is-current:not(:last-child) .learning-step-rail:after{background:linear-gradient(var(--cyan) 0 25%,#e1e8ee 25%)}.learning-step-card{margin-bottom:12px;padding:16px 17px;border:1px solid #e3e9ef;border-radius:14px;background:#fff;box-shadow:0 1px 2px rgba(15,35,57,.02);transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.learning-step.is-current .learning-step-card{border-color:#c4e8e5;box-shadow:0 8px 24px rgba(16,78,91,.07)}.learning-step-card:hover{border-color:#d2dde6}.learning-step-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.learning-step-title{display:grid;gap:4px}.learning-step-title h3{margin:0;font-size:.93rem;letter-spacing:-.015em}.learning-step-kicker{display:flex;align-items:center;gap:7px;color:#7c8d9e;font-size:.68rem}.learning-step-kicker .optional-mark{color:#8f6b1f}.learning-step-description{margin:10px 0 0;color:#5d7186;font-size:.78rem;line-height:1.6}.learning-step-meta{display:flex;flex-wrap:wrap;gap:12px;margin-top:11px;color:#8a99a8;font-size:.67rem}.learning-step-actions{margin-top:13px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.learning-step-actions form{margin:0}.learning-step.is-upcoming .learning-step-card{background:#fbfcfd}.learning-step.is-upcoming .learning-step-marker{background:#f7f9fb}.learning-step.is-optional .learning-step-marker{border-style:dashed}.journey-legend{display:flex;align-items:center;gap:16px;padding:12px 20px 18px;border-top:1px solid #edf1f5;color:#7d8c9b;font-size:.69rem}.journey-legend span{display:flex;align-items:center;gap:6px}.journey-legend i{width:8px;height:8px;border-radius:999px;background:var(--navy)}.journey-legend .is-optional i{background:transparent;border:1px dashed #8d9aa8}

/* Loading, skeleton, reveal */
.app-route-loader{position:fixed;left:0;right:0;top:0;z-index:200;height:3px;transform:scaleX(0);transform-origin:left;background:linear-gradient(90deg,var(--cyan),#55ddd8,#0b4b77);opacity:0;transition:opacity .12s ease}.is-navigating .app-route-loader{opacity:1;animation:route-loader 1.1s var(--ease-out) forwards}@keyframes route-loader{0%{transform:scaleX(.05)}55%{transform:scaleX(.72)}100%{transform:scaleX(.94)}}
.app-shell-ready .sch-page-skeleton{inset:var(--topbar-height) 0 0 var(--sidebar-width);background:rgba(245,247,250,.86);padding:28px;backdrop-filter:blur(2px)}.sidebar-collapsed .sch-page-skeleton{left:var(--sidebar-collapsed)}.participant-shell-ready .sch-page-skeleton{inset:70px 0 0;background:rgba(245,248,251,.88)}.sch-skeleton-shell{width:min(1050px,92%)}.sch-skeleton-shell span{border-radius:14px;background:linear-gradient(90deg,#edf1f4 25%,#fff 43%,#edf1f4 60%);background-size:220% 100%}
.ui-reveal{opacity:0;transform:translateY(8px);transition:opacity .34s var(--ease-out) var(--reveal-delay,0ms),transform .34s var(--ease-out) var(--reveal-delay,0ms)}.ui-reveal.is-visible{opacity:1;transform:none}

/* Responsive */
@media(max-width:1180px){.app-command-wrap{width:min(310px,32vw)}.app-profile-button-copy{display:none}.app-profile-button{padding-right:5px}.participant-featured-grid{grid-template-columns:minmax(0,1fr) 190px}}
@media(max-width:1020px){
  .app-shell-ready,.app-shell-ready.sidebar-collapsed{padding-left:0}.app-sidebar,.sidebar-collapsed .app-sidebar{width:min(290px,86vw);transform:translateX(-105%);padding:18px 14px 14px}.sidebar-mobile-open .app-sidebar{transform:translateX(0)}.sidebar-collapsed .app-sidebar-brand{padding:0 7px 0 8px;justify-content:space-between}.sidebar-collapsed .app-sidebar-brand a,.sidebar-collapsed .app-sidebar-caption,.sidebar-collapsed .app-nav-heading,.sidebar-collapsed .app-nav-link span,.sidebar-collapsed .app-profile-copy,.sidebar-collapsed .app-profile-more{display:initial}.sidebar-collapsed .app-sidebar-brand a{display:block}.sidebar-collapsed .app-sidebar-collapse{display:none}.sidebar-collapsed .app-nav-link{justify-content:flex-start;padding:0 11px}.sidebar-collapsed .app-sidebar-profile{grid-template-columns:38px minmax(0,1fr) 32px;padding:10px 8px 5px;justify-items:stretch}.app-sidebar-collapse{display:none}.app-topbar,.sidebar-collapsed .app-topbar{left:0;padding:0 18px}.app-mobile-sidebar-toggle{display:grid}.app-sidebar-overlay{position:fixed;inset:0;z-index:75;border:0;background:rgba(4,20,39,.34);backdrop-filter:blur(2px)}.sidebar-mobile-open .app-sidebar-overlay{display:block}.app-shell-ready .sch-page-skeleton,.sidebar-collapsed .sch-page-skeleton{left:0}.app-shell-ready .admin-container{width:min(100% - 32px,1340px)}
}
@media(max-width:780px){
  .app-topbar{height:64px;gap:11px;padding:0 13px}.app-breadcrumb{display:none}.app-command-wrap{width:auto;flex:1}.app-command-search kbd{display:none}.app-profile-button{max-width:42px;width:42px;padding:4px}.app-profile-button>svg,.app-profile-button-copy{display:none}.app-profile-menu{right:12px;top:57px}.app-shell-ready .admin-main{padding-top:calc(64px + 20px)}
  .participant-appbar{height:64px;padding:0 14px;gap:10px}.participant-brand img{width:112px}.participant-brand span{display:none}.participant-appnav{margin-left:auto}.participant-appnav a{width:38px;padding:0;justify-content:center}.participant-appnav a span{display:none}.participant-profile>span:not(.app-avatar){display:none}.participant-shell-ready .admin-main{padding-top:24px}.participant-shell-ready .admin-container{width:min(100% - 24px,1200px)}
  .participant-kpi-strip{grid-template-columns:1fr}.participant-featured-course{padding:22px}.participant-featured-grid{grid-template-columns:1fr;gap:18px}.participant-featured-action{justify-content:flex-start}.participant-course-grid,.participant-course-grid.is-single{grid-template-columns:1fr}.learning-journey{padding:8px 12px 14px}.learning-step{grid-template-columns:34px minmax(0,1fr);gap:10px}.learning-step-marker{width:32px;height:32px;border-radius:10px}.learning-step:not(:last-child) .learning-step-rail:after{top:33px;left:16px}.learning-step-card{padding:14px}.learning-step-head{flex-direction:column}.journey-legend{padding-left:12px;flex-wrap:wrap}
  body[data-app-shell] .admin-hero{align-items:flex-start}.form-sticky-actions{bottom:8px}.table-selection-toolbar{display:none!important}
}
@media(max-width:560px){
  .app-command-search{padding-right:9px}.app-command-search input{font-size:.74rem}.app-profile-button{display:none}.participant-profile .app-avatar{display:none}.participant-logout{width:32px;height:32px}.participant-featured-course h2{font-size:1.55rem}
}
@media(prefers-reduced-motion:reduce){.app-sidebar,.app-topbar,.ui-reveal,.learning-step-card,.participant-course-card{transition:none!important}.ui-reveal{opacity:1!important;transform:none!important}.is-navigating .app-route-loader{animation:none!important;transform:scaleX(1)!important}}

/* KPI dashboard come strip unico */
.app-shell-ready .training-stats{gap:0;border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden;box-shadow:var(--shadow-soft)}
.app-shell-ready .training-stats .stat-card{min-height:116px;border:0;border-right:1px solid #edf1f5;border-radius:0;box-shadow:none}
.app-shell-ready .training-stats .stat-card:last-child{border-right:0}
.app-shell-ready .training-stats .stat-card:hover{box-shadow:none}

/* Filtri di stato come chip */
.app-shell-ready .status-overview{display:flex;flex-wrap:wrap;align-items:center;gap:7px}
.app-shell-ready .status-filter{min-height:38px;flex:0 1 auto;border-radius:999px;padding:0 12px;gap:10px;background:#fff}
.app-shell-ready .status-filter span{font-size:.72rem;font-weight:600}.app-shell-ready .status-filter strong{min-width:23px;height:23px;padding:0 7px;border-radius:999px;background:#f0f4f7;display:grid;place-items:center;font-size:.68rem}
.app-shell-ready .status-filter.is-active strong{background:#dff6f4;color:#0c6b67}

/* Ordinamento locale per tabelle non paginate */
.admin-table th.is-sortable{cursor:pointer;user-select:none;padding-right:28px;position:sticky}.admin-table th.is-sortable:after{content:"↕";position:absolute;right:10px;color:#b1bdc8;font-size:.7rem}.admin-table th.is-sortable[aria-sort="ascending"]:after{content:"↑";color:var(--navy)}.admin-table th.is-sortable[aria-sort="descending"]:after{content:"↓";color:var(--navy)}.admin-table th.is-sortable:focus-visible{outline:2px solid rgba(24,200,195,.35);outline-offset:-2px}
@media(max-width:1050px){.app-shell-ready .training-stats{grid-template-columns:repeat(2,1fr)}.app-shell-ready .training-stats .stat-card:nth-child(2){border-right:0}.app-shell-ready .training-stats .stat-card:nth-child(-n+2){border-bottom:1px solid #edf1f5}}
@media(max-width:720px){.app-shell-ready .training-stats{grid-template-columns:1fr}.app-shell-ready .training-stats .stat-card{border-right:0;border-bottom:1px solid #edf1f5}.app-shell-ready .training-stats .stat-card:last-child{border-bottom:0}}
.form-sticky-cancel{min-height:38px;padding:0 11px;border:0;border-radius:9px;background:transparent;color:#66788c;cursor:pointer;font:600 .74rem Manrope,system-ui}.form-sticky-cancel:hover{background:#f3f6f8;color:#29445f}
.app-sidebar-brand img{filter:none}
.row-actions-popover{position:fixed;right:auto;min-width:190px;z-index:140}

/* Menu dinamico da database */
.app-sidebar-footer-nav{display:grid;gap:4px}
.app-sidebar-footer-nav .app-nav-group{margin:0}
.app-sidebar-footer-nav .app-nav-external{margin-top:0;border-top:1px solid rgba(255,255,255,.08);border-radius:0;padding-top:9px;min-height:52px}
.app-nav-parent{width:100%;border:0;background:transparent;text-align:left;font-family:inherit;cursor:pointer}
.app-nav-parent .app-nav-caret{width:15px;height:15px;margin-left:auto;transition:transform .18s var(--ease-out);color:#7895b3}
.app-nav-subtree.is-open>.app-nav-parent .app-nav-caret{transform:rotate(180deg)}
.app-nav-submenu{display:grid;gap:2px;margin:2px 0 5px 31px;padding-left:12px;border-left:1px solid rgba(255,255,255,.1)}
.app-nav-submenu[hidden]{display:none}
.app-nav-sub-link{position:relative;min-height:36px;padding:0 9px;border-radius:9px;display:flex;align-items:center;gap:9px;color:#9fb4c8;text-decoration:none;font-size:.78rem;font-weight:500;transition:background .17s ease,color .17s ease}
.app-nav-sub-link svg{width:15px;height:15px;flex:0 0 auto}.app-nav-sub-link:hover{background:rgba(255,255,255,.06);color:#fff}.app-nav-sub-link.is-active{background:rgba(24,200,195,.12);color:#fff}.app-nav-sub-link.is-active svg{color:#59e1dc}
.sidebar-collapsed .app-nav-submenu{display:none!important}.sidebar-collapsed .app-nav-parent .app-nav-caret{display:none}
.menu-load-error{padding:12px;color:#6b7d90;font-size:.78rem}
@media(max-width:760px){.app-nav-submenu{margin-left:31px}.sidebar-collapsed .app-nav-submenu[hidden]{display:none!important}}

/* Gestione menu - solo amministratori */
.menu-admin-hero{align-items:flex-end}
.menu-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0 0 16px}
.menu-admin-summary article{min-height:88px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-soft)}
.menu-admin-summary article.is-protected{background:linear-gradient(135deg,#fff,#f3f9ff)}
.menu-summary-icon{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:#eef7f8;color:#0c7773;flex:0 0 auto}.menu-summary-icon svg{width:18px;height:18px}.menu-admin-summary article.is-protected .menu-summary-icon{background:#edf2fb;color:var(--navy)}
.menu-admin-summary article>div{display:grid;gap:2px}.menu-admin-summary strong{font-size:1.12rem;line-height:1.1;color:#173755}.menu-admin-summary span:not(.menu-summary-icon){font-size:.69rem;color:#8190a0}
.menu-builder-panel{overflow:visible}.menu-builder-panel:hover{box-shadow:var(--shadow-soft)}
.menu-builder-body{display:grid;gap:22px;background:#f8fafc}
.menu-save-state{min-height:32px;padding:0 10px;border:1px solid #e2e9ef;border-radius:9px;background:#fff;color:#7b8b9b;display:inline-flex;align-items:center;gap:7px;font-size:.68rem;font-weight:600;white-space:nowrap}.menu-save-state svg{width:14px;height:14px}.menu-save-state.is-saving{color:#856117;border-color:#eedcae;background:#fffaf0}.menu-save-state.is-saved{color:#08735d;border-color:#cde9df;background:#f3fbf8}.menu-save-state.is-error{color:#a43147;border-color:#efccd4;background:#fff6f7}
.menu-position-section{display:grid;gap:10px}.menu-position-section+.menu-position-section{padding-top:20px;border-top:1px solid #e4eaf0}.menu-position-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px}.menu-position-head>div{display:grid;gap:2px}.menu-position-kicker{text-transform:uppercase;letter-spacing:.1em;color:#8a98a7;font-size:.59rem;font-weight:700}.menu-position-head h3{margin:0;font-size:.9rem;color:#294760}.menu-position-head>span{font-size:.65rem;color:#8b99a7}
.menu-admin-groups{display:grid;gap:10px;min-height:32px}.menu-admin-group{border:1px solid #dfe7ee;border-radius:14px;background:#fff;box-shadow:0 1px 1px rgba(14,33,54,.025);overflow:hidden}.menu-admin-group-head{min-height:62px;padding:9px 11px;display:flex;align-items:center;gap:10px;border-bottom:1px solid #edf1f5}.menu-admin-group-copy{min-width:0;display:grid;gap:2px;flex:1}.menu-admin-group-copy>strong{font-size:.8rem;color:#173755}.menu-admin-group-copy>span{display:flex;align-items:center;gap:6px;color:#8b99a7;font-size:.64rem}.menu-admin-group-copy .badge{min-height:20px;padding:0 7px;font-size:.59rem}
.menu-drag-handle,.menu-icon-button{width:32px;height:32px;border:0;border-radius:9px;background:transparent;color:#8695a5;display:grid;place-items:center;cursor:pointer;flex:0 0 auto;transition:background .15s ease,color .15s ease,transform .15s ease}.menu-drag-handle{cursor:grab}.menu-drag-handle:active{cursor:grabbing}.menu-drag-handle:hover,.menu-icon-button:hover{background:#f1f5f8;color:#31516e}.menu-icon-button.is-danger:hover{background:#fff0f2;color:var(--danger)}.menu-drag-handle svg,.menu-icon-button svg{width:16px;height:16px}
.menu-admin-icon-preview{width:34px;height:34px;border-radius:9px;background:#eef7f8;color:#0d7471;display:grid;place-items:center;flex:0 0 auto}.menu-admin-icon-preview svg{width:17px;height:17px}
.menu-admin-row-actions{display:flex;align-items:center;gap:3px}.menu-admin-row-actions form{margin:0}
.menu-admin-voices{display:grid;min-height:18px}.menu-admin-empty,.menu-admin-position-empty{padding:14px;color:#9aa7b4;font-size:.68rem;text-align:center}.menu-admin-position-empty{border:1px dashed #d8e0e8;border-radius:12px;background:rgba(255,255,255,.55)}
.menu-admin-voice{background:#fff}.menu-admin-voice-main{min-height:54px;padding:8px 11px 8px 21px;display:flex;align-items:center;gap:9px;border-top:1px solid #f0f3f6}.menu-admin-voices>.menu-admin-voice:first-child>.menu-admin-voice-main{border-top:0}.menu-admin-voice .menu-admin-icon-preview{width:30px;height:30px;border-radius:8px;background:#f3f6f8;color:#61758a}.menu-admin-voice .menu-admin-icon-preview svg{width:15px;height:15px}.menu-admin-voice-copy{min-width:0;flex:1;display:grid;gap:4px}.menu-admin-title-line{display:flex;align-items:center;gap:7px;min-width:0}.menu-admin-title-line>strong{font-size:.76rem;color:#26435d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-admin-meta-line{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.menu-admin-meta-line code{max-width:410px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#8795a3;background:#f6f8fa;padding:2px 5px;border-radius:5px;font:500 .6rem ui-monospace,SFMono-Regular,Consolas,monospace}.menu-admin-meta-line .badge{min-height:19px;padding:0 6px;font-size:.56rem}.menu-role-chip{min-height:19px;padding:0 6px;border-radius:999px;background:#edf4fb;color:#496782;display:inline-flex;align-items:center;font-size:.56rem;font-weight:600}.menu-role-chip.is-empty{background:#fff2de;color:#8a651c}.menu-lock-badge{min-height:20px;padding:0 7px;border-radius:999px;background:#edf2fb;color:#355b85;display:inline-flex;align-items:center;gap:4px;font-size:.56rem;font-weight:700}.menu-lock-badge svg{width:11px;height:11px}
.menu-admin-children{margin:0 12px 8px 54px;border-left:1px solid #dfe7ee;border-radius:0 0 0 8px;background:#fafbfd}.menu-admin-children .menu-admin-voice-main{padding-left:12px;background:#fafbfd}.menu-admin-children .menu-admin-voice:last-child>.menu-admin-voice-main{border-radius:0 0 8px 0}.menu-admin-children .menu-admin-icon-preview{background:#fff}.menu-admin-voice.is-protected>.menu-admin-voice-main{background:linear-gradient(90deg,#fff,#fbfdff)}
.menu-sortable-ghost{opacity:.3!important;background:#def5f3!important}.menu-sortable-chosen{box-shadow:0 0 0 2px rgba(24,200,195,.16)}.menu-sortable-drag{box-shadow:0 18px 48px rgba(12,30,52,.16)!important;border-radius:14px!important;background:#fff!important}
.badge-muted{background:#eef2f5;color:#708090}
.menu-archive-panel{margin-top:16px;overflow:hidden}.menu-archive-panel:hover{box-shadow:var(--shadow-soft)}.menu-archive-panel>summary{min-height:58px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;gap:14px;cursor:pointer;list-style:none}.menu-archive-panel>summary::-webkit-details-marker{display:none}.menu-archive-panel>summary>span:first-child{display:flex;align-items:center;gap:8px}.menu-archive-panel>summary svg{width:16px;height:16px;color:#748597}.menu-archive-panel>summary strong{font-size:.8rem}.menu-archive-panel>summary>span:last-child{font-size:.65rem;color:#8c99a7}.menu-archive-content{border-top:1px solid #edf1f5;display:grid}.menu-archive-row{min-height:60px;padding:8px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #f0f3f6}.menu-archive-row:last-child{border-bottom:0}.menu-archive-row>div{min-width:0;display:grid;gap:2px}.menu-archive-row strong{font-size:.73rem;color:#425b73}.menu-archive-row span{max-width:620px;color:#929eaa;font-size:.62rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.menu-archive-row .admin-btn{min-height:34px;padding:0 10px;font-size:.67rem}
body.menu-modal-open{overflow:hidden}.menu-admin-modal{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:20px}.menu-admin-modal[hidden]{display:none}.menu-admin-modal-backdrop{position:absolute;inset:0;background:rgba(4,20,39,.42);backdrop-filter:blur(3px);opacity:0;transition:opacity .16s ease}.menu-admin-dialog{position:relative;width:min(620px,100%);max-height:min(860px,calc(100vh - 40px));overflow:auto;border:1px solid rgba(218,227,236,.9);border-radius:18px;background:#fff;box-shadow:0 30px 90px rgba(4,20,39,.24);opacity:0;transform:translateY(10px) scale(.985);transition:opacity .18s var(--ease-out),transform .18s var(--ease-out)}.menu-admin-dialog.is-wide{width:min(790px,100%)}.menu-admin-modal.is-open .menu-admin-modal-backdrop{opacity:1}.menu-admin-modal.is-open .menu-admin-dialog{opacity:1;transform:none}.menu-admin-dialog>header{position:sticky;top:0;z-index:3;min-height:68px;padding:13px 16px 12px 20px;border-bottom:1px solid #e9eef3;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:space-between;gap:14px}.menu-admin-dialog>header>div{display:grid;gap:1px}.menu-dialog-kicker{text-transform:uppercase;letter-spacing:.1em;color:#8d99a6;font-size:.56rem;font-weight:700}.menu-admin-dialog h2{margin:0;font-size:1rem;color:#173755}.menu-admin-form{margin:0}.menu-form-grid{padding:20px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 14px}.menu-field{display:grid;align-content:start;gap:6px}.menu-field.full,.menu-check-field.full,.menu-role-field.full{grid-column:1/-1}.menu-field>span,.menu-role-field legend{color:#344f69;font-size:.67rem;font-weight:700}.menu-field input,.menu-field select,.menu-field textarea{width:100%;min-height:42px;padding:9px 11px;border:1px solid #d8e1e9;border-radius:10px;background:#fbfcfd;color:#203a55;outline:none;font:500 .75rem Manrope,system-ui}.menu-field textarea{min-height:76px;resize:vertical}.menu-field input:focus,.menu-field select:focus,.menu-field textarea:focus{border-color:#83d7d3;box-shadow:0 0 0 4px rgba(24,200,195,.08);background:#fff}.menu-field input[readonly]{background:#f1f4f7;color:#738397}.menu-field small,.menu-role-field>small{color:#94a0ac;font-size:.59rem;line-height:1.45}.menu-icon-field{position:relative}.menu-icon-field>[data-icon-preview]{position:absolute;left:8px;top:50%;transform:translateY(-50%);width:28px;height:28px;border-radius:8px;background:#eef7f8;color:#0d7772;display:grid;place-items:center;pointer-events:none}.menu-icon-field>[data-icon-preview] svg{width:14px;height:14px}.menu-icon-field input{padding-left:44px}.menu-check-field{display:flex;align-items:flex-start;gap:10px;padding:11px;border:1px solid #e2e8ee;border-radius:11px;background:#fbfcfd}.menu-check-field input{margin:3px 0 0;width:16px;height:16px;accent-color:var(--navy)}.menu-check-field>span{display:grid;gap:2px}.menu-check-field strong{font-size:.68rem;color:#344f69}.menu-check-field small{font-size:.59rem;color:#8e9aa7;line-height:1.4}.menu-role-field{margin:0;padding:0;border:0}.menu-role-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}.menu-role-options label{cursor:pointer}.menu-role-options input{position:absolute;opacity:0;pointer-events:none}.menu-role-options label>span{min-height:38px;padding:0 11px;border:1px solid #dce4eb;border-radius:10px;background:#fff;color:#677a8d;display:flex;align-items:center;gap:7px;font-size:.66rem;transition:.15s ease}.menu-role-options label>span svg{width:14px;height:14px}.menu-role-options input:checked+span{border-color:#9fdedb;background:#effbfa;color:#0d6d69;box-shadow:inset 0 0 0 1px rgba(24,200,195,.08)}.menu-role-options input:disabled+span{opacity:.58;cursor:not-allowed}.menu-role-field>[data-protected-role-note]{display:block;margin-top:8px;color:#516d89}.menu-admin-form>footer{position:sticky;bottom:0;z-index:3;padding:11px 16px;border-top:1px solid #e8edf2;background:rgba(255,255,255,.96);backdrop-filter:blur(14px);display:flex;align-items:center;justify-content:flex-end;gap:7px}.menu-admin-form>footer .admin-btn{min-height:38px;font-size:.69rem}
@media(max-width:1040px){.menu-admin-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.menu-admin-meta-line code{max-width:270px}}
@media(max-width:720px){.menu-admin-summary{grid-template-columns:1fr 1fr}.menu-admin-group-head{padding:8px}.menu-admin-voice-main{padding-left:10px}.menu-admin-group-copy>span{display:none}.menu-admin-meta-line code{max-width:180px}.menu-admin-meta-line .badge,.menu-role-chip{display:none}.menu-admin-children{margin-left:34px}.menu-form-grid{grid-template-columns:1fr;padding:16px}.menu-field.full,.menu-check-field.full,.menu-role-field.full{grid-column:auto}.menu-admin-modal{padding:10px}.menu-admin-dialog{max-height:calc(100vh - 20px);border-radius:15px}.menu-admin-summary article{min-height:76px;padding:11px}.menu-position-head{align-items:center}.menu-save-state{display:none}}
@media(max-width:480px){.menu-admin-summary{grid-template-columns:1fr}.menu-admin-row-actions{gap:0}.menu-admin-icon-preview{display:none}.menu-admin-meta-line code{max-width:135px}.menu-lock-badge{display:none}}
@media(prefers-reduced-motion:reduce){.menu-admin-modal-backdrop,.menu-admin-dialog,.menu-icon-button,.menu-drag-handle{transition:none!important}}
.menu-protected-group{width:32px;height:32px;border-radius:9px;background:#edf2fb;color:#42648a;display:grid;place-items:center;flex:0 0 auto}.menu-protected-group svg{width:15px;height:15px}

/* Report centralizzati */
.report-stats .stat-value-text{font-size:1.05rem;line-height:1.3;max-width:28ch}
.report-filter-form{align-items:end}
.report-filter-form .form-actions.full{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.report-table-wrap{max-height:68vh;overflow:auto}
.report-table{min-width:980px}
.report-table th{position:sticky;top:0;z-index:2;background:var(--admin-surface,#fff)}
.report-table td{white-space:nowrap}
.report-table td:nth-child(2),.report-table td:nth-child(3),.report-table td:nth-child(5){white-space:normal;min-width:160px}
@media (max-width:760px){.report-stats{grid-template-columns:1fr}.report-table-wrap{max-height:none}}

/* CMS news: categorie, copertine e SEO */
.news-category-layout{display:grid;gap:20px}
.news-category-chips{display:flex;flex-wrap:wrap;gap:10px}
.news-category-chip{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--admin-line,#dbe4ee);border-radius:12px;background:#fff}
.news-category-chip>span{display:grid;gap:2px}.news-category-chip small{color:#73849a;font-size:.75rem}
.news-category-chip form{margin:0}.icon-action{display:grid;place-items:center;width:32px;height:32px;border:0;border-radius:9px;background:#f4f7fa;color:#66788e;cursor:pointer}.icon-action:hover{background:#e9eef4;color:#173858}.icon-action svg{width:16px;height:16px}
.news-admin-title-cell{display:flex;align-items:center;gap:12px;min-width:260px}.news-admin-title-cell img{width:64px;height:48px;object-fit:cover;border-radius:9px;border:1px solid #e0e7ef}
.news-cover-current{display:flex;align-items:flex-start;gap:16px;flex-wrap:wrap}.news-cover-current img{width:min(360px,100%);aspect-ratio:16/9;object-fit:cover;border-radius:14px;border:1px solid #dfe7ef}
.field-hint{display:block;margin-top:6px;color:#73849a;font-size:.76rem;line-height:1.4}
.news-category-actions{display:flex;align-items:center;gap:4px}.news-category-actions form{display:flex}
