/* A scoped visual proposal for the independent JDServer public portal. */
:root {
  --jdr-bg:#f4f6f5; --jdr-surface:#fff; --jdr-text:#142b3b; --jdr-muted:#576773;
  --jdr-border:#dce4e7; --jdr-accent:#087d7c; --jdr-soft:#edf4f2;
  --jdr-header:linear-gradient(110deg,#eaf2f5,#e4f2ef); --jdr-header-border:#bdd7d9;
}
:root[data-theme="dark"] {
  --jdr-bg:#0c1923; --jdr-surface:#132632; --jdr-text:#e1ecef; --jdr-muted:#a1b5bf;
  --jdr-border:#2c424e; --jdr-accent:#67d7c9; --jdr-soft:#1b303d;
  --jdr-header:linear-gradient(110deg,#162e3c,#163b3e); --jdr-header-border:#365860;
}
html:root body.jd-body.jd-modern { background:var(--jdr-bg)!important; color:var(--jdr-text); margin:0; }
html body.jd-modern.jd-body * { box-sizing:border-box; }
html body.jd-modern.jd-body a:focus-visible,html body.jd-modern.jd-body button:focus-visible,html body.jd-modern.jd-body input:focus-visible,html body.jd-modern.jd-body select:focus-visible,html body.jd-modern.jd-body textarea:focus-visible { outline:3px solid var(--jdr-accent); outline-offset:4px; }
html body.jd-modern.jd-body .container { width:calc(100% - 64px); max-width:1240px; margin-inline:auto; }
html body.jd-modern.jd-body .jd-main { padding:34px 0 64px; }
html body.jd-modern.jd-body .jd-modern-notice { padding:7px 16px; text-align:center; background:var(--jdr-soft); color:var(--jdr-muted); border-bottom:1px solid var(--jdr-border); font-size:12px; line-height:1.5; }
html body.jd-modern.jd-body #jd-header { position:sticky; top:0; z-index:40; background:var(--jdr-header); border-bottom:1px solid var(--jdr-header-border); box-shadow:none; }
html body.jd-modern.jd-body .jd-header-inner { max-width:1240px; width:calc(100% - 64px); padding:14px 0; display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:24px; row-gap:8px; }
html body.jd-modern.jd-body .jd-header-brand { grid-column:1; grid-row:1 / span 2; gap:12px; }
html body.jd-modern.jd-body .jd-header-logo { width:50px; height:50px; flex:0 0 50px; padding:4px; border-radius:16px; border:0; background:#fff; box-shadow:none; }
html body.jd-modern.jd-body .jd-header-logo img { border-radius:8px; }
html body.jd-modern.jd-body .jd-header-title { color:var(--jdr-text); background:none; font-size:24px; font-weight:700; }
html body.jd-modern.jd-body .jd-header-subtitle { color:var(--jdr-muted); font-size:12px; white-space:normal; max-width:330px; line-height:1.4; }
html body.jd-modern.jd-body .jd-header-nav { grid-column:2; grid-row:1; justify-content:flex-end; flex-wrap:nowrap; gap:5px; padding:0; margin:0; border:0; border-radius:0; background:none; box-shadow:none!important; backdrop-filter:none; }
html body.jd-modern.jd-body .jd-nav-link { padding:7px 8px; color:var(--jdr-text); font-size:13px; border-radius:999px; background:none; box-shadow:none; white-space:nowrap; }
html body.jd-modern.jd-body .jd-nav-link.is-active { background:var(--jdr-surface); color:var(--jdr-accent); box-shadow:none; }
html body.jd-modern.jd-body .jd-nav-link:hover { color:var(--jdr-accent); background:var(--jdr-soft); }
html body.jd-modern.jd-body .jd-header-toolbar { grid-column:2; grid-row:2; margin:0; justify-content:flex-end; display:flex; gap:10px; }
html body.jd-modern.jd-body .jd-header-lang,html body.jd-modern.jd-body .jd-header-theme { padding:3px; border:1px solid var(--jdr-border); border-radius:999px; background:var(--jdr-surface); box-shadow:none; }
html body.jd-modern.jd-body .jd-lang-pill,html body.jd-modern.jd-body .jd-theme-pill { min-height:29px; min-width:31px; padding:4px 7px; font-size:12px; border-radius:999px; color:var(--jdr-muted); }
html body.jd-modern.jd-body .jd-lang-pill.is-active,html body.jd-modern.jd-body .jd-theme-pill.is-active { background:var(--jdr-soft); color:var(--jdr-accent); box-shadow:none; }
html body.jd-modern.jd-body .jd-hero { display:grid; grid-template-columns:1.28fr 1fr; gap:0; margin:0; border-radius:28px 28px 0 0; background:#102f43!important; overflow:hidden; min-height:430px; }
html body.jd-modern.jd-body .jd-hero::before,html body.jd-modern.jd-body .jd-hero::after { content:none; }
html body.jd-modern.jd-body .jd-hero-text { padding:44px 0 42px 46px; z-index:2; }
html body.jd-modern.jd-body .jd-hero .jd-badge { color:#b5d7de; background:none; border:0; border-radius:0; padding:0; box-shadow:none!important; backdrop-filter:none; font-size:11px; letter-spacing:.12em; line-height:1.65; font-weight:600; }
html body.jd-modern.jd-body .jd-hero-title { background:none; color:var(--jdr-text); font-size:clamp(34px,3.5vw,51px); line-height:1.15!important; font-weight:650!important; letter-spacing:-.035em!important; }
html body.jd-modern.jd-body .jd-hero .jd-hero-title { color:#fff; margin:22px 0 20px; }
html body.jd-modern.jd-body .jd-hero-title em { color:#72dfcd; font-style:normal; }
html body.jd-modern.jd-body .jd-hero-subtitle { color:var(--jdr-muted); font-size:16px; line-height:1.75; }
html body.jd-modern.jd-body .jd-hero .jd-hero-subtitle { color:#c0d4de; max-width:560px; margin:0; }
html body.jd-modern.jd-body .jd-hero-actions { margin-top:25px; gap:12px 16px; }
html body.jd-modern.jd-body .jd-btn { padding:12px 17px; border-radius:999px; background:var(--jdr-surface); border:1px solid var(--jdr-border); color:var(--jdr-accent); box-shadow:none; font-size:14px; font-weight:600; backdrop-filter:none; }
html body.jd-modern.jd-body .jd-btn-primary { background:#83e3d1; color:#103645; border-color:transparent; }
html body.jd-modern.jd-body .jd-btn:hover { border-color:var(--jdr-accent); box-shadow:none; }
html body.jd-modern.jd-body .jd-hero .jd-btn-ghost { color:#e2f1f5; background:none; border-color:#547484; }
html body.jd-modern.jd-body .jd-hero .jd-btn-ghost:hover { background:#1b4358; }
html body.jd-modern.jd-body .jd-hero-mini { color:#a5c2d0; font-size:12px; line-height:1.65; margin:24px 0 0; max-width:540px; }
html body.jd-modern.jd-body .jd-hero-visual { align-self:center; padding:20px 18px; width:100%; z-index:1; }
html body.jd-modern.jd-body .jd-hero-visual svg { width:100%; height:auto; display:block; }
html body.jd-modern.jd-body .jd-modern-statStrip { margin:0 0 45px; background:var(--jdr-surface); border:1px solid var(--jdr-border); border-top:0; border-radius:0 0 28px 28px; padding:25px; }
html body.jd-modern.jd-body .jd-hero-kpis { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:0; padding:0; list-style:none; background:none!important; border:0!important; box-shadow:none!important; border-radius:0; }
html body.jd-modern.jd-body .jd-hero-kpis li { background:none; border:0; border-right:1px solid var(--jdr-border); padding:0 16px; display:flex; flex-direction:column-reverse; align-items:center; gap:5px; }
html body.jd-modern.jd-body .jd-hero-kpis li:last-child { border-right:0; }
html body.jd-modern.jd-body .kpi-label { color:var(--jdr-muted); font-size:13px; text-align:center; }
html body.jd-modern.jd-body .kpi-value { color:var(--jdr-text); font-size:29px; font-weight:650; line-height:1.3; }
html body.jd-modern.jd-body .jd-section { margin:0 0 48px; scroll-margin-top:125px; }
html body.jd-modern.jd-body .jd-section-header { margin-bottom:22px; }
html body.jd-modern.jd-body .jd-section-title { color:var(--jdr-text); font-size:28px!important; line-height:1.3; margin:0 0 10px; font-weight:650; }
html body.jd-modern.jd-body .jd-section-subtitle { color:var(--jdr-muted); font-size:16px; line-height:1.7; max-width:920px; margin:0; }
html body.jd-modern.jd-body .jd-projects-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; }
html body.jd-modern.jd-body .jd-project-card,html body.jd-modern.jd-body .jd-tech-card,html body.jd-modern.jd-body .jd-participa-card { background:var(--jdr-surface); border:1px solid var(--jdr-border); border-radius:24px; padding:25px; box-shadow:none!important; backdrop-filter:none; }
html body.jd-modern.jd-body .jd-project-card::before,html body.jd-modern.jd-body .jd-tech-card::before,html body.jd-modern.jd-body .jd-network-card::before { content:none; }
html body.jd-modern.jd-body .jd-modern-featureNumber { display:inline-grid; place-items:center; width:34px; height:34px; margin-bottom:20px; font-size:13px; font-weight:650; color:var(--jdr-accent); border-radius:14px; background:var(--jdr-soft); }
html body.jd-modern.jd-body .jd-project-card h3,html body.jd-modern.jd-body .jd-tech-card h3,html body.jd-modern.jd-body .jd-participa-card h3 { color:var(--jdr-text); font-size:18px; line-height:1.4; margin:0 0 14px; }
html body.jd-modern.jd-body .jd-project-card p,html body.jd-modern.jd-body .jd-tech-card p,html body.jd-modern.jd-body .jd-participa-card p { color:var(--jdr-muted); font-size:15px; line-height:1.75; }
html body.jd-modern.jd-body .jd-project-link { color:var(--jdr-accent); font-size:14px; font-weight:600; }
html body.jd-modern.jd-body .jd-section-soft { background:none; border:0; border-radius:0; padding:0; box-shadow:none!important; }
html body.jd-modern.jd-body .jd-network-toolbar { justify-content:flex-end; margin:0 0 18px; }
html body.jd-modern.jd-body .jd-network-shuffle { background:var(--jdr-surface); border:1px solid var(--jdr-border); border-radius:999px; box-shadow:none; color:var(--jdr-accent); padding:10px 15px; font-size:14px; }
html body.jd-modern.jd-body .jd-network-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
html body.jd-modern.jd-body .jd-network-card { background:var(--jdr-surface); border:1px solid var(--jdr-border); border-radius:24px; padding:25px; box-shadow:none!important; backdrop-filter:none; }
html body.jd-modern.jd-body .jd-network-card:hover { border-color:var(--jdr-accent); box-shadow:none; }
html body.jd-modern.jd-body .jd-network-logo { border-radius:16px; box-shadow:none; }
html body.jd-modern.jd-body .jd-network-name { color:var(--jdr-text); font-size:18px; line-height:1.4; }
html body.jd-modern.jd-body .jd-network-location { color:var(--jdr-muted); font-size:13px; }
html body.jd-modern.jd-body .jd-network-live-heading { color:var(--jdr-accent); margin-top:20px; font-size:12px; }
html body.jd-modern.jd-body .jd-network-card.is-stale .jd-network-live-heading { color:var(--jdr-muted); }
html body.jd-modern.jd-body .jd-network-metrics { gap:20px 12px; padding:18px 0; }
html body.jd-modern.jd-body .jd-network-metric svg { color:var(--jdr-accent); }
html body.jd-modern.jd-body .jd-network-metric small { color:var(--jdr-muted); font-size:12px; }
html body.jd-modern.jd-body .jd-network-metric strong { color:var(--jdr-text); font-size:18px; font-weight:600; }
html body.jd-modern.jd-body .jd-network-link { border:1px solid var(--jdr-border); border-radius:999px; background:var(--jdr-soft); color:var(--jdr-accent); box-shadow:none; padding:11px 14px; font-size:14px; }
html body.jd-modern.jd-body .jd-tech-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
html body.jd-modern.jd-body .jd-contact-section { background:#102f43; border:0; border-radius:24px; padding:32px; }
html body.jd-modern.jd-body .jd-contact-section .jd-section-title { color:#fff; }
html body.jd-modern.jd-body .jd-contact-section .jd-section-subtitle,html body.jd-modern.jd-body .jd-contact-section p { color:#c0d4de; font-size:16px; line-height:1.75; }
html body.jd-modern.jd-body .jd-contact-section a { color:#83e3d1; }
html body.jd-modern.jd-body #jd-footer { color:var(--jdr-muted); background:var(--jdr-surface); border-top:1px solid var(--jdr-border); box-shadow:none; }
html body.jd-modern.jd-body .jd-footer-inner { width:calc(100% - 64px); max-width:1240px; padding:24px 0; gap:22px; }
html body.jd-modern.jd-body .jd-footer-right a { color:var(--jdr-muted); font-size:13px; }
html body.jd-modern.jd-body .jd-love-mark { background:var(--jdr-soft); color:var(--jdr-accent); box-shadow:none; border-color:var(--jdr-border); }
html body.jd-modern.jd-body .jd-participa-hero,html body.jd-modern.jd-body .jd-about-hero { border:0; background:#102f43; border-radius:24px; padding:36px; }
html body.jd-modern.jd-body .jd-participa-hero .jd-hero-title,html body.jd-modern.jd-body .jd-about-hero .jd-hero-title { color:#fff; }
html body.jd-modern.jd-body .jd-participa-hero .jd-badge,html body.jd-modern.jd-body .jd-about-hero .jd-badge { color:#b5d7de; background:none; border:0; box-shadow:none; padding:0; }
html body.jd-modern.jd-body .jd-participa-hero .jd-hero-subtitle,html body.jd-modern.jd-body .jd-about-hero .jd-hero-subtitle,html body.jd-modern.jd-body .jd-participa-note { color:#c0d4de; font-size:16px; line-height:1.75; }
html body.jd-modern.jd-body .jd-participa-soft,html body.jd-modern.jd-body .jd-participa-columns,html body.jd-modern.jd-body .jd-participa-textblock,html body.jd-modern.jd-body .jd-participa-list,html body.jd-modern.jd-body .jd-legal-card { background:var(--jdr-surface); color:var(--jdr-text); border:1px solid var(--jdr-border); border-radius:24px; box-shadow:none; }
html body.jd-modern.jd-body .jd-participa-list li,html body.jd-modern.jd-body .jd-participa-list strong { color:var(--jdr-text); }
html body.jd-modern.jd-body .jd-form-field label,html body.jd-modern.jd-body .jd-consent-label { color:var(--jdr-text); }
html body.jd-modern.jd-body .jd-form-field input,html body.jd-modern.jd-body .jd-form-field select,html body.jd-modern.jd-body .jd-form-field textarea { background:var(--jdr-surface); color:var(--jdr-text); border:1px solid var(--jdr-border); border-radius:14px; box-shadow:none; font-size:16px; }
@media(max-width:1180px) {
 html body.jd-modern.jd-body .jd-header-brand { grid-row:1; }
 html body.jd-modern.jd-body .jd-header-toolbar { grid-column:2; grid-row:1; }
 html body.jd-modern.jd-body .jd-header-nav { grid-column:1 / -1; grid-row:2; justify-content:center; flex-wrap:wrap; }
 html body.jd-modern.jd-body .jd-projects-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 html body.jd-modern.jd-body .jd-hero-title { font-size:42px; }
 html body.jd-modern.jd-body .jd-hero-text { padding:35px 0 35px 32px; }
}
@media(max-width:800px) {
 html body.jd-modern.jd-body .container,html body.jd-modern.jd-body .jd-header-inner,html body.jd-modern.jd-body .jd-footer-inner { width:calc(100% - 36px); }
 html body.jd-modern.jd-body .jd-header-inner { gap:10px; }
 html body.jd-modern.jd-body .jd-header-subtitle { max-width:280px; }
 html body.jd-modern.jd-body .jd-hero { grid-template-columns:1fr; min-height:0; }
 html body.jd-modern.jd-body .jd-hero-text { padding:32px!important; }
 html body.jd-modern.jd-body .jd-hero-visual { position:absolute; right:-9%; bottom:-45px; width:73%; max-width:470px; padding:0; opacity:.32; z-index:1; pointer-events:none; }
 html body.jd-modern.jd-body .jd-hero-title { font-size:42px; }
 html body.jd-modern.jd-body .jd-hero-mini { max-width:90%; }
 html body.jd-modern.jd-body .jd-network-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 html body.jd-modern.jd-body .jd-tech-grid { grid-template-columns:1fr; }
 html body.jd-modern.jd-body .jd-section { scroll-margin-top:205px; }
}
@media(max-width:560px) {
 html body.jd-modern.jd-body .container,html body.jd-modern.jd-body .jd-header-inner,html body.jd-modern.jd-body .jd-footer-inner { width:calc(100% - 28px); }
 html body.jd-modern.jd-body .jd-main { padding-top:20px; }
 html body.jd-modern.jd-body .jd-header-inner { grid-template-columns:1fr; gap:9px; padding:12px 0 10px; }
 html body.jd-modern.jd-body .jd-header-brand { grid-column:1; grid-row:1; }
 html body.jd-modern.jd-body .jd-header-logo { width:43px; height:43px; flex-basis:43px; }
 html body.jd-modern.jd-body .jd-header-title { font-size:23px; }
 html body.jd-modern.jd-body .jd-header-subtitle { font-size:12px; max-width:none; }
 html body.jd-modern.jd-body .jd-header-nav { grid-column:1; grid-row:2; flex-wrap:wrap; gap:4px 8px; justify-content:flex-start; }
 html body.jd-modern.jd-body .jd-nav-link { padding:6px 5px; font-size:12px; }
 html body.jd-modern.jd-body .jd-header-toolbar { grid-column:1; grid-row:3; justify-content:flex-start; gap:10px; }
 html body.jd-modern.jd-body .jd-hero-text { padding:29px 24px!important; }
 html body.jd-modern.jd-body .jd-hero-title { font-size:34px; }
 html body.jd-modern.jd-body .jd-hero-subtitle { font-size:15px; line-height:1.7; }
 html body.jd-modern.jd-body .jd-hero-mini { font-size:12px; max-width:100%; }
 html body.jd-modern.jd-body .jd-hero-actions { gap:10px; }
 html body.jd-modern.jd-body .jd-hero .jd-btn { font-size:13px; padding:11px 13px; }
 html body.jd-modern.jd-body .jd-modern-statStrip { padding:18px 8px; margin-bottom:34px; }
 html body.jd-modern.jd-body .jd-hero-kpis li { padding:0 7px; }
 html body.jd-modern.jd-body .kpi-value { font-size:25px!important; }
 html body.jd-modern.jd-body .kpi-label { font-size:12px; line-height:1.5; }
 html body.jd-modern.jd-body .jd-section-title { font-size:25px!important; }
 html body.jd-modern.jd-body .jd-section-subtitle { font-size:15px; }
 html body.jd-modern.jd-body .jd-projects-grid,html body.jd-modern.jd-body .jd-network-grid { grid-template-columns:1fr; }
 html body.jd-modern.jd-body .jd-project-card,html body.jd-modern.jd-body .jd-network-card { padding:23px; }
 html body.jd-modern.jd-body .jd-contact-section,html body.jd-modern.jd-body .jd-participa-hero,html body.jd-modern.jd-body .jd-about-hero { padding:25px; }
 html body.jd-modern.jd-body .jd-participa-cards { grid-template-columns:1fr; }
 html body.jd-modern.jd-body .jd-footer-inner { flex-direction:column; align-items:flex-start; }
 html body.jd-modern.jd-body .jd-footer-right { justify-content:flex-start; flex-wrap:wrap; }
 html body.jd-modern.jd-body .jd-section { scroll-margin-top:235px; }
}
@media(prefers-reduced-motion:reduce) { html body.jd-modern.jd-body * { scroll-behavior:auto!important; transition:none!important; } }

html body.jd-modern.jd-body .jd-contact-content { background:none; border:0; box-shadow:none!important; padding:0; }

html body.jd-modern.jd-body .jd-participa-columns,html body.jd-modern.jd-body .jd-participa-textblock,html body.jd-modern.jd-body .jd-participa-list { background:none; border:0; border-radius:0; }
html body.jd-modern.jd-body .jd-participa-list li { background:var(--jdr-soft); border:1px solid var(--jdr-border); box-shadow:none; }
html body.jd-modern.jd-body[data-jd-page="legal"] .jd-participa-textblock,html body.jd-modern.jd-body[data-jd-page="privacy"] .jd-participa-textblock { background:var(--jdr-surface); border:1px solid var(--jdr-border); border-radius:24px; padding:30px; font-size:16px; line-height:1.75; }
html body.jd-modern.jd-body[data-jd-page="legal"] .jd-participa-textblock h2,html body.jd-modern.jd-body[data-jd-page="privacy"] .jd-participa-textblock h2 { font-size:22px; line-height:1.4; margin:30px 0 10px; color:var(--jdr-text); }
html body.jd-modern.jd-body[data-jd-page="legal"] .jd-participa-textblock h2:first-child,html body.jd-modern.jd-body[data-jd-page="privacy"] .jd-participa-textblock h2:first-child { margin-top:0; }
html body.jd-modern.jd-body[data-jd-page="legal"] .jd-participa-textblock p,html body.jd-modern.jd-body[data-jd-page="privacy"] .jd-participa-textblock p { color:var(--jdr-muted); }
@media(max-width:560px) { html body.jd-modern.jd-body[data-jd-page="legal"] .jd-participa-textblock,html body.jd-modern.jd-body[data-jd-page="privacy"] .jd-participa-textblock { padding:23px; } }

/* Shared public brand typography: larger, softer and subtly colored. */
html body.jd-modern.jd-body .jd-header-brand { gap:12px; }
html body.jd-modern.jd-body .jd-header-title { font-family:inherit; font-size:28px; font-weight:600!important; line-height:1.2; letter-spacing:-.02em; color:var(--jdr-text); background:none; }
html body.jd-modern.jd-body .jd-header-subtitle { font-family:inherit; font-size:14px; font-weight:400; line-height:1.5; letter-spacing:normal; white-space:normal; overflow:visible; text-overflow:clip; max-width:360px; }
html body.jd-modern.jd-body .jd-header-logo { width:50px; height:50px; flex-basis:50px; }
@supports ((background-clip:text) or (-webkit-background-clip:text)) { html body.jd-modern.jd-body .jd-header-title { background:linear-gradient(110deg,var(--jdr-text) 10%,var(--jdr-accent) 100%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; } }
@media(max-width:560px) { html body.jd-modern.jd-body .jd-header-title { font-size:26px; } html body.jd-modern.jd-body .jd-header-subtitle { font-size:14px; max-width:none; } html body.jd-modern.jd-body .jd-header-logo { width:44px; height:44px; flex-basis:44px; } }
@media(forced-colors:active) { html body.jd-modern.jd-body .jd-header-title { background:none; color:CanvasText; -webkit-text-fill-color:currentColor; } }
