@import "https://fonts.googleapis.com/css2?family=Source+Sans+Pro:wght@400;600;700&display=swap";
:root{--bg:#f6f8fb;--surface:#fff;--ink:#18212f;--muted:#5d697a;--line:#d9e1ea;--blue:#095db7;--teal:#18baa8;--green:#208a4b;--amber:#b45f06;--red:#b42318;--shadow:0 16px 40px #18212f14}*{box-sizing:border-box}body{color:var(--ink);letter-spacing:0;background:#fff;margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.streamlit-app{color:#000;max-width:1500px;margin:0 auto;padding:24px 40px 80px;font-family:Source Sans Pro,Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.match-header{grid-template-columns:minmax(0,4fr) minmax(280px,3fr);align-items:center;gap:36px;margin-bottom:24px;display:grid}.match-header-left{grid-template-columns:154px minmax(0,1fr);align-items:center;gap:20px;display:grid}.main-logo{width:154px;height:auto}.match-header-right{justify-content:flex-end;display:flex}.match-header-right img{width:460px;max-width:100%;height:auto;display:block}.main-header{background:linear-gradient(135deg,#095db7 0%,#18baa8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:2.65rem;font-weight:700;line-height:1.05}.sub-header{color:#6b7c8f;max-width:760px;margin:1rem 0 0;font-size:1.12rem;line-height:1.45}.st-tabs{background:#f4f8f8;border-radius:8px;flex-wrap:wrap;gap:8px;margin-bottom:1rem;padding:8px 12px;display:flex}.st-tabs.nested{margin-top:8px}.st-tab{color:#6b7c8f;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e1e5ea;border-radius:6px;min-height:50px;padding:0 28px;font-size:1.105rem;font-weight:600;transition:all .2s}.st-tab:hover{color:#18baa8;background:#f4f8f8;border-color:#18baa8}.st-tab[aria-selected=true]{color:#fff;background:#18baa8;border-color:#18baa8;box-shadow:0 2px 4px #18baa84d}.st-panel{padding:12px 0 40px}.st-panel h1,.st-panel h2,.st-panel h3,.st-panel h4{color:#1f2937;letter-spacing:0}.st-panel h3{margin:1rem 0 .75rem;font-size:1.65rem}.st-panel h4{margin:1.25rem 0 .75rem;font-size:1.12rem}.st-form{border:1px solid #e1e5ea;border-radius:8px;padding:1.25rem}.inline-pill{color:#0f766e;letter-spacing:.04em;text-transform:uppercase;background:#18baa81f;border-radius:999px;margin-bottom:.9rem;padding:.35rem .65rem;font-size:.78rem;font-weight:700;display:inline-block}.muted,.caption{color:#6b7c8f}.caption{margin:.35rem 0;font-size:.9rem}.load-profile-row{grid-template-columns:minmax(0,3fr) minmax(180px,1fr);align-items:end;gap:16px;display:grid}.st-grid{gap:16px;margin-bottom:12px;display:grid}.st-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.st-grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.st-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.st-grid.company{grid-template-columns:1.55fr 1.25fr .8fr}.streamlit-app label{color:#31333f;gap:6px;font-size:1rem;font-weight:400;display:grid}.streamlit-app input,.streamlit-app select,.streamlit-app textarea{color:#31333f;background:#fff;border:1px solid #d6d9de;border-radius:.5rem;width:100%;min-height:42px;padding:.5rem .75rem;font-family:inherit;font-size:1rem}.streamlit-app textarea{resize:vertical}.streamlit-app hr{border:0;border-top:1px solid #e6e8eb;margin:1.75rem 0}.st-primary,.st-secondary{cursor:pointer;border-radius:10px;min-height:42px;padding:.55rem 1rem;font-family:inherit;font-weight:500;transition:all .2s}.st-primary{color:#fff;background:#18baa8;border:1px solid #18baa8}.st-primary:hover{background:#14a899;border-color:#14a899;box-shadow:0 2px 8px #18baa866}.st-primary:disabled{cursor:not-allowed;opacity:.55}.st-primary.full{width:100%;margin-top:.75rem}.st-secondary{color:#6b7c8f;background:#fff;border:1px solid #e1e5ea}.st-info,.st-success,.st-warning,.st-error{border-radius:.5rem;margin:.75rem 0;padding:1rem}.st-info{color:#12436d;background:#e8f3ff}.st-success{color:#0f6b3a;background:#e9f7ef}.st-warning{color:#8a4b00;background:#fff4df}.st-error{color:#9f1c1c;background:#fdecec}.accent-note{color:#000;background:linear-gradient(135deg,#e0f7f4 0%,#f4f8f8 100%);border-left:4px solid #18baa8;border-radius:8px;margin:.75rem 0 1.5rem;padding:1rem 1.5rem}.st-spacer{height:2.5rem}.radio-row{border:0;flex-wrap:wrap;gap:18px;margin:0 0 1rem;padding:0;display:flex}.radio-row legend{flex-basis:100%;margin-bottom:.4rem}.checks label,.radio-row label{align-items:center;gap:8px;display:flex}.checks input,.radio-row input{width:auto;min-height:auto}.profile-box{background:#fff;border:1px solid #e1e5ea;border-radius:12px;margin-bottom:1rem;padding:1.5rem}.profile-box h4{color:#095db7;margin-top:0}.profile-footer{color:#6b7c8f;text-align:center;background:#f4f8f8;border-radius:8px;margin-bottom:1rem;padding:1rem;font-size:.9rem}.directory-title{text-align:center;margin-bottom:2rem}.directory-title h1{color:#095db7;font-size:2.5rem;font-weight:600}.directory-filters{grid-template-columns:3fr 1.2fr 1.2fr 1.2fr;gap:14px;margin-bottom:1.5rem;display:grid}.member-count{color:#6b7c8f;margin:.5rem 0 1rem}.member-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;display:grid}.member-card{cursor:pointer;text-align:center;background:#fff;border:1px solid #e1e5ea;border-radius:12px;min-height:240px;padding:1.25rem;transition:all .2s;box-shadow:0 2px 8px #0000000f}.member-card:hover{border-color:#18baa8;transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.partner-avatar{color:#5a5a5a;background:#f4f8f8;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto 1rem;font-size:1.5rem;font-weight:600;display:flex}.partner-name{color:#000;margin-bottom:.5rem;font-size:1rem;font-weight:600;line-height:1.3}.partner-sector{color:#6b7c8f;font-size:.85rem}.partner-location{color:#8b949e;margin-top:.25rem;font-size:.8rem}.partner-badge{color:#18baa8;background:#e0f7f4;border-radius:1rem;margin-top:.7rem;padding:.2rem .6rem;font-size:.7rem;font-weight:500;display:inline-block}.view-profile{color:#18baa8;margin-top:1rem;font-weight:600;display:block}.profile-detail{background:#fff;border:1px solid #e1e5ea;border-radius:12px;margin-top:1rem;padding:1.5rem}.result-markdown pre{color:#31333f;white-space:pre-wrap;background:#fff;border:1px solid #e1e5ea;border-radius:8px;padding:1rem;font-family:Source Sans Pro,sans-serif;line-height:1.5}.source-selection-box{color:#fff;background:linear-gradient(135deg,#1a237e 0%,#0d47a1 100%);border-radius:8px;margin-bottom:15px;padding:15px}.source-selection-box strong{margin:.2rem 0;font-size:1.4em;display:block}.phase-grid>div,.st-expander{background:#fff;border:1px solid #e1e5ea;border-radius:8px;padding:1rem}.st-expander{margin:.75rem 0}.st-expander summary{cursor:pointer}.query-container{border:1px solid #e1e5ea;border-radius:12px;margin:1rem 0;overflow:hidden;box-shadow:0 2px 8px #0000000f}.query-header{color:#fff;background:linear-gradient(135deg,#095db7 0%,#18baa8 100%);justify-content:space-between;align-items:center;padding:12px 20px;font-weight:600;display:flex}.query-body{color:#333;background:#fff;max-height:400px;margin:0;padding:20px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6;overflow:auto}.st-dataframe{border:1px solid #e1e5ea;border-radius:8px;max-height:420px;overflow:auto}.st-dataframe table{border-collapse:collapse;width:100%;min-width:900px}.st-dataframe th,.st-dataframe td{text-align:left;vertical-align:top;border-bottom:1px solid #e1e5ea;padding:.55rem .75rem;font-size:.9rem}.st-dataframe th{color:#31333f;background:#f4f8f8;font-weight:600}.privacy{max-width:980px}@media (max-width:1100px){.member-grid,.directory-filters,.st-grid.four,.st-grid.company{grid-template-columns:repeat(2,minmax(0,1fr))}.match-header{grid-template-columns:1fr}.match-header-right{justify-content:flex-start}}@media (max-width:760px){.streamlit-app{padding:18px 16px 56px}.match-header-left,.load-profile-row,.member-grid,.directory-filters,.st-grid.two,.st-grid.three,.st-grid.four,.st-grid.company{grid-template-columns:1fr}.main-header{font-size:2rem}}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.app-header{border-bottom:1px solid var(--line);z-index:20;background:#ffffffeb;justify-content:space-between;align-items:center;gap:24px;min-height:68px;padding:0 32px;display:flex;position:sticky;top:0}.brand{color:var(--ink);font-size:18px;font-weight:750}.nav-links{align-items:center;gap:8px;display:flex}.nav-links a{color:var(--muted);border-radius:8px;padding:10px 12px;font-size:14px;font-weight:650}.nav-links a:hover{color:var(--blue);background:#edf4ff}.shell{max-width:1180px;margin:0 auto;padding:48px 24px 72px}.shell.narrow{max-width:920px}.hero-grid{grid-template-columns:minmax(0,1.5fr) minmax(280px,.85fr);align-items:stretch;gap:24px;display:grid}.hero-copy,.system-panel,.form-surface,.partner-card,.state-box{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:8px}.hero-copy{min-height:360px;padding:48px}.eyebrow{color:var(--teal);text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:800}h1,h2{letter-spacing:0;margin:0;line-height:1.08}h1{font-size:46px}h2{font-size:24px}.lead{color:var(--muted);max-width:720px;margin:24px 0 0;font-size:18px;line-height:1.65}.hero-actions,.form-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.button{cursor:pointer;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;min-height:44px;padding:0 16px;font-weight:750;display:inline-flex}.button.primary{background:var(--blue);color:#fff}.button.secondary{border-color:var(--line);color:var(--ink);background:#fff}.button:disabled{cursor:wait;opacity:.7}.system-panel{gap:14px;padding:28px;display:grid}.system-panel div{border-left:4px solid var(--teal);padding-left:16px}.metric{color:var(--ink);font-size:38px;font-weight:800;display:block}.metric-label{color:var(--muted);font-size:14px;font-weight:650}.workstream-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px;display:grid}.workstream{background:var(--surface);border:1px solid var(--line);border-radius:8px;min-height:160px;padding:22px}.workstream span{margin-bottom:12px;font-size:18px;font-weight:800;display:block}.workstream p,.partner-card p{color:var(--muted);margin:0;line-height:1.55}.workstream.teal{border-top:4px solid var(--teal)}.workstream.blue{border-top:4px solid var(--blue)}.workstream.amber{border-top:4px solid var(--amber)}.workstream.green{border-top:4px solid var(--green)}.page-title{margin-bottom:24px}.form-surface{gap:22px;padding:26px;display:grid}.form-grid{gap:18px;display:grid}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}label{color:var(--ink);gap:8px;font-size:14px;font-weight:750;display:grid}input,select,textarea{color:var(--ink);background:#fff;border:1px solid #cbd5e1;border-radius:8px;width:100%;min-height:42px;padding:10px 12px}textarea{resize:vertical;min-height:100px}input:focus,select:focus,textarea:focus{border-color:var(--blue);outline:none;box-shadow:0 0 0 3px #1f5fbf24}.check-row{align-items:center;gap:10px;line-height:1.35;display:flex}.check-row input{width:18px;height:18px;min-height:18px}.consent-stack,.rehab-row{gap:14px;display:grid}.form-message{margin:0;font-size:14px;font-weight:700}.form-message.success{color:var(--green)}.form-message.error,.state-box.error{color:var(--red)}.partner-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.partner-card{gap:18px;padding:24px;display:grid}.profile-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0;display:grid}.profile-facts div{border-top:1px solid var(--line);padding-top:10px}.profile-facts dt{color:var(--muted);text-transform:uppercase;font-size:12px;font-weight:800}.profile-facts dd{margin:4px 0 0;font-size:14px;font-weight:700}.challenge-band{border-left:4px solid var(--teal);background:#f0f7f6;border-radius:8px;padding:14px}.challenge-band span{color:var(--teal);text-transform:uppercase;margin-bottom:6px;font-size:12px;font-weight:800;display:block}.state-box{color:var(--muted);padding:24px;font-weight:700}.consent-heading{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.status-pill{color:var(--green);white-space:nowrap;background:#e9f7ef;border:1px solid #b7dfc7;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:800}.navigator-layout{grid-template-columns:minmax(280px,.8fr) minmax(0,1.4fr);gap:22px;display:grid}.navigator-panel{align-self:start}.result-panel{gap:16px;min-width:0;display:grid}.result-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.result-summary>div{border:1px solid var(--line);background:#fff;border-radius:8px;padding:20px}.table-wrap{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:8px;overflow:auto}table{border-collapse:collapse;width:100%;min-width:760px}th,td{border-bottom:1px solid var(--line);text-align:left;vertical-align:top;padding:12px;font-size:13px;line-height:1.45}th{color:var(--muted);text-transform:uppercase;background:#f1f5f9;font-size:12px;font-weight:800}.query-details{border:1px solid var(--line);background:#fff;border-radius:8px;padding:16px}.query-details summary{cursor:pointer;font-weight:800}.query-details pre{color:#e5e7eb;background:#111827;border-radius:8px;padding:14px;overflow:auto}@media (max-width:840px){.app-header{flex-direction:column;align-items:flex-start;padding:18px 20px}.hero-grid,.workstream-grid,.partner-grid,.navigator-layout,.result-summary,.form-grid.two,.profile-facts{grid-template-columns:1fr}.hero-copy{min-height:auto;padding:28px}h1{font-size:34px}.shell{padding:32px 16px 56px}.consent-heading{display:grid}}.syntax-keyword{color:#095db7;font-weight:700}.syntax-prefix{color:#18baa8}.syntax-uri{color:#a31515}.syntax-variable{color:#001080}.syntax-string{color:#a31515}.syntax-comment{color:green;font-style:italic}.syntax-number{color:#098658}.query-editor{color:#d4d4d4;resize:vertical;background:#1e1e1e;border:none;border-radius:0 0 12px 12px;width:100%;min-height:200px;padding:20px;font-family:Consolas,Monaco,Courier New,monospace;font-size:.9rem;line-height:1.6}.query-editor:focus{outline:none;box-shadow:inset 0 0 0 2px #18baa8}.terminal-header{color:#18baa8;background-color:#1e1e1e;border-bottom:1px solid #3c3c3c;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:.8rem 1rem;font-family:Consolas,Monaco,Courier New,monospace;font-size:.85rem;display:flex}.avatar-color-0{background-color:#e8d5b7}.avatar-color-1{background-color:#d4e5d2}.avatar-color-2{background-color:#ddd5e8}.avatar-color-3{background-color:#d5e5e8}.avatar-color-4{background-color:#e8e5d5}.avatar-color-5{background-color:#e5d5d8}.avatar-color-6{background-color:#d8e5d5}.avatar-color-7{background-color:#e5e0d5}.badge-tech-offer{color:#18baa8;background:#e0f7f4;border-radius:1rem;margin-right:.25rem;padding:.2rem .6rem;font-size:.7rem;font-weight:500;display:inline-block}.badge-tech-seek{color:#ef6c00;background:#fff3e0;border-radius:1rem;margin-right:.25rem;padding:.2rem .6rem;font-size:.7rem;font-weight:500;display:inline-block}.source-badge{border-radius:1rem;margin-bottom:.5rem;margin-right:.5rem;padding:.25rem .75rem;font-size:.8rem;font-weight:500;display:inline-block}.source-cordis{color:#7b1fa2;background-color:#f3e5f5}.source-interreg{color:#18baa8;background-color:#e0f7f4}.source-erasmus{color:#1565c0;background-color:#e3f2fd}.source-life{color:#2e7d32;background-color:#e8f5e9}.source-hrp{color:#ef6c00;background-color:#fff3e0}.source-opencoesione{color:#c2185b;background-color:#fce4ec}.stat-card{text-align:center;background:linear-gradient(135deg,#f4f8f8 0%,#e9ecef 100%);border:1px solid #e1e5ea;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000000f}.stat-number{color:#095db7;font-size:2rem;font-weight:700}.stat-number.yes{color:#2e7d32}.stat-number.no{color:#d32f2f}.stat-number.uncertain{color:#ef6c00}.stat-label{color:#6b7c8f;margin-top:.25rem;font-size:.9rem}.progress-container{background:#e1e5ea;border-radius:4px;width:100%;height:8px;margin:1rem 0;overflow:hidden}.progress-bar{background:linear-gradient(90deg,#095db7 0%,#18baa8 100%);border-radius:4px;height:100%;transition:width .3s}.progress-text{color:#6b7c8f;margin-bottom:.5rem;font-size:.9rem}.contact-blurred{filter:blur(4px);-webkit-user-select:none;user-select:none}.contact-blurred:hover:after{content:"Contact information hidden for privacy";color:#6b7c8f;margin-top:.5rem;font-size:.8rem;display:block}.cta-box{text-align:center;background:linear-gradient(135deg,#e0f7f4 0%,#f4f8f8 100%);border:1px solid #18baa8;border-radius:12px;margin-top:1.5rem;padding:1.25rem}.cta-box p{color:#0f766e;margin:0;font-weight:500}.cta-box a{color:#18baa8;font-weight:600;text-decoration:underline}.char-counter{color:#6b7c8f;text-align:right;margin-top:.25rem;font-size:.8rem}.char-counter.warning{color:#ef6c00}.char-counter.error{color:#d32f2f}.textarea-with-counter{position:relative}.st-info-teal{color:#0f766e;background:#e0f7f4;border-left:4px solid #18baa8;border-radius:0 8px 8px 0;margin:.75rem 0;padding:1rem}.classification-filters{flex-wrap:wrap;gap:12px;margin:1rem 0;display:flex}.classification-filters label{cursor:pointer;background:#fff;border:1px solid #e1e5ea;border-radius:6px;align-items:center;gap:8px;padding:.5rem 1rem;transition:all .2s;display:flex}.classification-filters label:hover{border-color:#18baa8}.classification-filters input:checked+span{color:#18baa8;font-weight:600}.download-buttons{flex-wrap:wrap;gap:12px;margin:1rem 0;display:flex}.download-btn{color:#31333f;cursor:pointer;background:#fff;border:1px solid #e1e5ea;border-radius:8px;align-items:center;gap:8px;padding:.6rem 1rem;font-size:.9rem;font-weight:500;transition:all .2s;display:inline-flex}.download-btn:hover{color:#18baa8;background:#f4f8f8;border-color:#18baa8}.download-btn:disabled{cursor:not-allowed;opacity:.5}.clear-results-btn{color:#8a4b00;cursor:pointer;background:#fff4df;border:1px solid #ffeaa7;border-radius:8px;width:100%;margin-top:1.5rem;padding:.75rem 1.5rem;font-weight:500;transition:all .2s}.clear-results-btn:hover{background:#ffeaa7}@keyframes balloon-float{0%{opacity:1;transform:translateY(100vh)rotate(0)}to{opacity:0;transform:translateY(-100vh)rotate(360deg)}}.balloons-container{pointer-events:none;z-index:9999;width:100%;height:100%;position:fixed;top:0;left:0;overflow:hidden}.balloon{font-size:2rem;animation:3s ease-out forwards balloon-float;position:absolute}.phase-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:1.5rem 0;display:grid}.query-explanation{background:#e0f7f4;border-left:4px solid #18baa8;border-radius:0 8px 8px 0;margin:1rem 0;padding:1rem}.rerun-btn{color:#6b7c8f;cursor:pointer;background:#f4f8f8;border:1px solid #e1e5ea;border-radius:6px;margin-top:.5rem;padding:.4rem .8rem;font-size:.85rem;transition:all .2s}.rerun-btn:hover{color:#fff;background:#18baa8;border-color:#18baa8}.privacy h2{color:#095db7;border-bottom:2px solid #e1e5ea;margin-top:2rem;padding-bottom:.5rem;font-size:1.4rem}.privacy h3{color:#1f2937;margin-top:1.5rem;font-size:1.15rem}.privacy table{border-collapse:collapse;border:1px solid #e1e5ea;width:100%;margin:1rem 0}.privacy th,.privacy td{text-align:left;border:1px solid #e1e5ea;padding:.75rem}.privacy th{background:#f4f8f8;font-weight:600}.privacy ul,.privacy ol{margin:.5rem 0;padding-left:1.5rem}.privacy li{margin:.35rem 0}.privacy code{background:#f4f8f8;border-radius:4px;padding:.15rem .4rem;font-family:Consolas,Monaco,Courier New,monospace}.phase-two-col{grid-template-columns:1fr 1fr;gap:24px;display:grid}@media (max-width:900px){.phase-two-col{grid-template-columns:1fr}}.batch-slider{align-items:center;gap:12px;display:flex}.batch-slider input[type=range]{flex:1;height:8px;min-height:auto}.batch-slider span{color:#6b7c8f;min-width:40px;font-size:.9rem}.help-text{color:#6b7c8f;margin-top:.35rem;font-size:.85rem;line-height:1.45}.help-text a{color:#18baa8;text-decoration:underline}.methodology-box{background-color:#e0f7f4;border-left:4px solid #18baa8;border-radius:0 8px 8px 0;margin:1rem 0;padding:1rem}.schema-table{background:#fff;border:1px solid #e1e5ea;border-radius:8px;margin:1rem 0;overflow:hidden}.schema-table table{border-collapse:collapse;width:100%}.schema-table th{color:#095db7;text-align:left;background:#f4f8f8;border-bottom:2px solid #e1e5ea;padding:.75rem;font-size:.85rem;font-weight:600}.schema-table td{border-bottom:1px solid #e1e5ea;padding:.6rem .75rem;font-size:.9rem}.schema-table tr:last-child td{border-bottom:none}.quick-reference{background:#f4f8f8;border-radius:8px;margin-top:1rem;padding:1rem}.quick-reference h4{color:#095db7;margin-top:0}
