:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#1b3041;background:#f4f7f8;font-size:15px;line-height:1.5}input[name="country_iso2"]{text-transform:uppercase}[hidden]{display:none!important}
*{box-sizing:border-box}body{margin:0}a{color:#146581;text-decoration:none}a:hover{text-decoration:underline}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,p{margin-top:0}h1{font-size:2rem;line-height:1.16;letter-spacing:-.035em;margin-bottom:.4rem}h2{font-size:1.14rem;letter-spacing:-.02em}small,.muted{color:#64788a}.shell{width:min(1260px,calc(100% - 3rem));margin:auto}.site-header{background:#10344c;color:white;box-shadow:0 2px 12px #10283d25}.bar{display:flex;align-items:center;gap:2rem;min-height:76px}.brand{display:flex;align-items:center;gap:.8rem;color:white;font-weight:750;line-height:1.12;white-space:nowrap}.brand small{font-size:.77rem;font-weight:450;color:#b9d2df}.brand:hover{text-decoration:none}.mark{display:inline-flex;align-items:center;justify-content:center;background:#26a4aa;border-radius:13px;width:44px;height:44px;color:white;font-size:1.15rem;font-weight:800;letter-spacing:-.05em}.mark.large{width:54px;height:54px;margin-bottom:1.5rem}.site-header nav{display:flex;flex:1;gap:1rem;align-items:center;flex-wrap:wrap}.site-header nav a,.text-button{color:#e4f0f6;font-weight:550;font-size:.92rem}.site-header nav a:hover{color:white}.site-header form{margin:0}.text-button{border:0;background:transparent;padding:.5rem}.text-button:hover{text-decoration:underline}.page-title{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin:2.3rem 0 1.4rem}.page-title p{color:#64788a;margin:.4rem 0 0;max-width:800px}.eyebrow,.label{font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;font-weight:750;color:#147e87;margin-bottom:.5rem}.actions,.item-head,.mini-actions,.pager,.form-actions{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}.actions{justify-content:flex-end}.button{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;padding:.58rem .9rem;border:1px solid #c8d7df;border-radius:9px;color:#19455c;background:white;font-weight:650;text-decoration:none;white-space:nowrap;min-height:39px}.button:hover{text-decoration:none;background:#edf6f8}.button.primary{background:#12778a;color:white;border-color:#12778a}.button.primary:hover{background:#0b6074}.button.secondary{background:white}.button.danger{color:#a53535;border-color:#efcccc}.button.danger:hover{background:#fff1f1}.inline{display:inline-flex}.strong-link{font-weight:700}.subtle-link{font-weight:650;font-size:.88rem}.notice,.error{padding:.9rem 1rem;border-radius:10px;margin:1.3rem 0;background:#e2f5ec;color:#165f49;border:1px solid #a8dac1}.error{background:#fff0ec;border-color:#f2c2b4;color:#8d3328}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:.8rem;margin-bottom:1.5rem}.stat{background:white;border:1px solid #dde6eb;border-radius:12px;padding:1rem 1.1rem;box-shadow:0 2px 10px #183c5310}.stat span{font-size:.77rem;color:#637a88;display:block}.stat strong{font-size:1.5rem;letter-spacing:-.045em;display:block;margin-top:.28rem;color:#153b50;line-height:1.2;overflow-wrap:anywhere}.stat-grid.compact{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin:0}.stat-grid.compact .stat{box-shadow:none}.stat-grid.compact .stat strong{font-size:1.2rem}.section-title{display:flex;align-items:center;justify-content:space-between;gap:.8rem;margin:2.3rem 0 .8rem}.section-title h2{margin:0}.table-wrap{border:1px solid #dbe5ea;border-radius:12px;background:white;overflow:auto;box-shadow:0 2px 10px #183c530c}table{width:100%;border-collapse:collapse;text-align:left;min-width:720px}th,td{padding:.78rem 1rem;border-bottom:1px solid #eaf0f2;vertical-align:top}th{background:#eef4f6;color:#496373;white-space:nowrap;text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}td{font-size:.9rem}tbody tr:last-child td{border-bottom:0}tbody tr:hover{background:#f9fbfc}.empty{text-align:center;color:#64788a;padding:1.5rem}.filters{display:flex;gap:.8rem;align-items:flex-end;flex-wrap:wrap;background:white;border:1px solid #dbe5ea;border-radius:12px;padding:1rem;margin-bottom:1rem}.filters label{display:grid;gap:.3rem;font-size:.79rem;font-weight:650;color:#4c6472}.filters input,.filters select{min-width:170px;max-width:100%;border:1px solid #cbd9df;border-radius:8px;padding:.53rem .65rem;background:white;color:#1b3041}.filters label:first-of-type input{min-width:260px}.filters .check-inline{display:flex;align-items:center;gap:.45rem;padding:.55rem 0}.filters .check-inline input{min-width:0}.pager{justify-content:flex-end;margin:1rem 0 3rem}.breadcrumbs{font-size:.85rem;color:#637a88;margin:1.3rem 0 -1rem}.panel{background:white;border:1px solid #dbe5ea;border-radius:12px;padding:1.3rem;box-shadow:0 2px 10px #183c530c}.split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.facts{display:grid;gap:.1rem;margin:0}.facts div{display:flex;gap:1rem;justify-content:space-between;border-bottom:1px solid #ebf0f2;padding:.53rem 0}.facts div:last-child{border:0}.facts dt{color:#667c89}.facts dd{font-weight:600;margin:0;text-align:right;max-width:64%;overflow-wrap:anywhere}.large-status{margin:.4rem 0 1rem}.badge{display:inline-flex;font-size:.76rem;font-weight:700;line-height:1.25;border-radius:100px;padding:.3rem .62rem;white-space:nowrap}.badge.good{background:#dcf3e5;color:#216342}.badge.bad{background:#f8e9e8;color:#943c39}.badge.warn{background:#fff1cf;color:#855b00}.badge.neutral{background:#eaf1f5;color:#426273}.callout,.form-note{background:#eaf6f5;border-left:3px solid #28a2a1;padding:.85rem 1rem;border-radius:5px;font-size:.87rem;margin:1rem 0 0}.prose{margin-top:1rem}.prose p{margin-bottom:0}.item{margin:.7rem 0}.item-head{justify-content:space-between;align-items:flex-start}.item-head strong{font-size:1.05rem}.item p{margin:1rem 0 0}.mini-actions{margin-top:.8rem}.subitem{display:flex;justify-content:space-between;gap:.5rem;padding:.65rem 0;border-top:1px solid #ecf1f2;font-size:.87rem}.subitem span{overflow-wrap:anywhere}.tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:3rem}.tag{border:1px solid #bee0df;background:#e9f6f5;color:#20616a;border-radius:100px;padding:.28rem .68rem;font-size:.83rem}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:.8rem}.contact{line-height:1.85}.contact .item-head{margin-bottom:.75rem}.footnote{font-size:.8rem;margin:.65rem 0}.entry-form{max-width:960px;margin-bottom:1rem}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-field{display:grid;align-content:start;gap:.35rem;font-size:.85rem}.form-field.full{grid-column:1/-1}.field-label{font-weight:650;color:#355266}.required{color:#b03535}.form-field input,.form-field textarea,.form-field select{border:1px solid #c8d8df;border-radius:8px;padding:.64rem .7rem;max-width:100%;width:100%;background:white;color:#1b3041}.form-field textarea{resize:vertical}.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.filters input:focus{outline:2px solid #5cb5ba;outline-offset:1px}.form-field small{font-size:.76rem}.option-filter{margin-bottom:.2rem}.theme-picker{border:1px solid #dbe5ea;border-radius:10px;margin:1.5rem 0;padding:1rem}.theme-picker legend{font-weight:650;padding:0 .4rem}.check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.45rem}.check-grid label{display:flex;align-items:center;gap:.5rem;font-size:.87rem}.form-actions{margin-top:1.5rem}.delete-area{max-width:960px;margin:1rem 0 3rem}.delete-area .button.secondary:not(.danger){display:none}.login-wrap{display:grid;place-items:center;min-height:85vh}.login{width:min(420px,100%);padding:2.2rem}.login h1{font-size:1.7rem}.login p{color:#657b89;margin-bottom:2rem}.login label{display:grid;gap:.35rem;font-weight:650;margin-bottom:1rem}.login input{border:1px solid #c8d8df;border-radius:8px;padding:.7rem}.login .button{width:100%;margin-top:.45rem}.setup{max-width:740px;background:white;border:1px solid #dbe5ea;padding:2rem;border-radius:12px;margin:4rem auto}.setup code{padding:.13rem .3rem;background:#eaf1f5;border-radius:4px}.clamp{max-width:450px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.setup-field{display:grid;gap:.35rem;font-weight:650;margin:1rem 0}.setup-field input,.setup-hash{width:100%;border:1px solid #c8d8df;border-radius:8px;padding:.7rem;font:inherit}.setup-hash{resize:vertical;overflow-wrap:anywhere}
@media(max-width:980px){.bar{align-items:flex-start;flex-wrap:wrap;padding:1rem 0;gap:.7rem 1rem}.site-header nav{order:3;width:100%;overflow:auto;flex-wrap:nowrap;white-space:nowrap}.site-header form{margin-left:auto}.split{grid-template-columns:1fr}.shell{width:min(100% - 2rem,1260px)}}
@media(max-width:600px){h1{font-size:1.65rem}.page-title{align-items:flex-start;flex-direction:column;margin-top:1.5rem}.actions{justify-content:flex-start}.form-grid{grid-template-columns:1fr}.form-field.full{grid-column:auto}.filters label,.filters label:first-of-type input{width:100%;min-width:0}.filters{align-items:stretch}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stat strong{font-size:1.2rem}.panel{padding:1rem}}
.kpi-intro{max-width:880px;font-size:.89rem;margin:-.15rem 0 1rem}.kpi-row-label{color:#355266;font-size:.94rem;margin:1.2rem 0 .7rem}.project-kpis{grid-template-columns:repeat(7,minmax(0,1fr))}.network-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}.budget-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.project-kpis .stat span,.network-kpis .stat span{min-height:2.4em}.stat small{display:block;font-size:.73rem;line-height:1.35;margin-top:.45rem;color:#64788a}.subsection-heading{color:#355266;font-size:.94rem;margin:0}.country-table{max-width:700px}.country-table table{min-width:420px}.year-activity-table th,.year-activity-table td{padding:.7rem .5rem}.year-activity-table th{line-height:1.25}.compact-table th,.compact-table td{padding:.58rem .55rem;line-height:1.35}.compact-table td{overflow-wrap:anywhere}.project-table td:nth-child(5),.project-table td:nth-child(8),.organisations-table td:nth-child(6){white-space:nowrap}
@media(max-width:1180px){.project-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.network-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.budget-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.project-kpis,.network-kpis,.budget-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.badge.info{background:#dff3fb;color:#14667d}

/* Identita visiva Focus Europe: blu e verde del logo originale. */
:root{--fe-blue:#39478e;--fe-blue-deep:#293e79;--fe-green:#619c42;--fe-green-dark:#426e27;--fe-green-soft:#eef5e9;--fe-border:#dce4dc;color:#27344c;background:#f5f7f4}
a{color:var(--fe-blue-deep)}
.app-page,.auth-page{color:#27344c;background:#f5f7f4}
.site-header{background:#fff;color:var(--fe-blue-deep);border-top:4px solid var(--fe-green);border-bottom:1px solid #dce3e8;box-shadow:0 3px 14px #293e7912}
.bar{min-height:88px;gap:clamp(1rem,2vw,2rem)}
.brand{flex-shrink:0;display:inline-flex;align-items:center}
.brand-logo{display:block;width:300px;max-width:100%;height:auto}
.site-header nav{gap:clamp(.55rem,1.15vw,1rem)}
.site-header nav a,.site-header .text-button{color:var(--fe-blue-deep);font-weight:650}
.site-header nav a:hover,.site-header .text-button:hover{color:var(--fe-green-dark)}
.page-title h1,.section-title h2,.stat strong{color:var(--fe-blue-deep)}
.eyebrow,.label{color:var(--fe-green-dark)}
.button{border-color:#ced8e3;color:var(--fe-blue-deep)}
.button:hover{background:var(--fe-green-soft)}
.button.primary{background:var(--fe-green-dark);border-color:var(--fe-green-dark);color:#fff}
.button.primary:hover{background:#34591f;border-color:#34591f}
.stat,.panel,.table-wrap,.filters{border-color:var(--fe-border)}
th{background:#edf0f8;color:var(--fe-blue-deep)}
tbody tr:hover{background:#f6f9f2}
.badge.good{background:#e1efd9;color:#326023}
.callout,.form-note{background:var(--fe-green-soft);border-left-color:var(--fe-green)}
.tag{background:var(--fe-green-soft);border-color:#c8deba;color:#326023}
.field-label,.kpi-row-label,.subsection-heading{color:var(--fe-blue-deep)}
.form-field input:focus,.form-field textarea:focus,.form-field select:focus,.filters input:focus,.filters select:focus,.login input:focus{outline:2px solid var(--fe-green);outline-offset:2px}
a:focus-visible,button:focus-visible{outline:2px solid var(--fe-green-dark);outline-offset:3px}
.auth-page{min-height:100vh;background:radial-gradient(circle at 10% 15%,#e9f2e3,transparent 30rem),radial-gradient(circle at 90% 85%,#ebedf8,transparent 32rem),#f5f7f4}
.auth-page .login-wrap{min-height:100vh;padding:2rem 0}
.auth-page .login{width:min(510px,100%);padding:2.4rem;border-top:4px solid var(--fe-green);box-shadow:0 18px 50px #293e7918}
.login-logo{display:block;width:100%;max-width:370px;height:auto;margin:0 auto 1.65rem}
.login h1{color:var(--fe-blue-deep)}
@media(max-width:600px){.brand-logo{width:min(75vw,300px)}.auth-page .login{padding:1.5rem}}
.site-header nav a{white-space:nowrap}
.partner-types-table{max-width:none;margin-bottom:2.5rem}
.partner-types-table table{min-width:960px}
.partner-types-table th{line-height:1.25}
.partner-types-table th:first-child,.partner-types-table td:first-child{min-width:190px}
.partner-types-table th:not(:first-child),.partner-types-table td:not(:first-child){text-align:center}
.partner-kpis{grid-template-columns:repeat(7,minmax(0,1fr))}
.partner-kpis .stat span{min-height:2.4em}
@media(max-width:1180px){.partner-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:760px){.partner-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.section-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin:-.3rem 0 1.2rem}
.section-tabs a{border:1px solid var(--fe-border);background:#fff;border-radius:9px;padding:.52rem .85rem;font-weight:650}
.section-tabs a[aria-current="page"]{background:var(--fe-blue-deep);border-color:var(--fe-blue-deep);color:white}
.portfolio-kpis{grid-template-columns:repeat(5,minmax(0,1fr))}
.member-years{margin-bottom:1rem}
.member-years table{min-width:650px}
@media(max-width:980px){.portfolio-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.portfolio-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Organizzazioni: colonne complete sul desktop, schede leggibili sul telefono. */
.organisations-table table{min-width:0;table-layout:fixed}
.organisations-table th,.organisations-table td{padding:.5rem .38rem;white-space:normal!important;overflow-wrap:anywhere;font-size:.78rem}
.organisations-table th{font-size:.65rem;letter-spacing:.025em}
.organisations-table th:first-child{width:25%}
.organisations-table th:nth-child(2){width:10%}
.organisations-table th:nth-child(3){width:13%}
.organisations-table th:nth-child(4){width:9%}
.organisations-table th:nth-child(5){width:10%}
.organisations-table th:nth-child(6),.organisations-table th:nth-child(7){width:6%}
.organisations-table th:nth-child(8){width:15%}
.organisations-table th:nth-child(9){width:6%}
.member-matrix td{font-size:.8rem;min-width:110px}
.member-matrix td:first-child{min-width:180px}
.member-matrix .badge{margin-bottom:.35rem}
.network-kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
@media(max-width:700px){
 .organisations-table table,.organisations-table tbody,.organisations-table tr,.organisations-table td{display:block;width:100%}
 .organisations-table thead{display:none}
 .organisations-table tr{padding:.7rem;border-bottom:1px solid var(--fe-border)}
 .organisations-table td{display:grid;grid-template-columns:110px minmax(0,1fr);gap:.5rem;border:0;font-size:.85rem}
 .organisations-table td:before{content:attr(data-label);font-weight:650;color:var(--fe-blue-deep)}
 .organisations-table td.empty{display:block}
}
