/* SOP Motore Universale 1.3.2 — Presentation Layer ONLY.
   Source of truth: existing SOP card palette and 12-area Lucide registry.
   Scope: .sopu-results; never overrides Core, Graph or other pages. */
.sopu-results {
  --sopu-ink: #132b49;
  --sopu-muted: #52667d;
  --sopu-teal: #006a75;
  --sopu-border: #cad5df;
  --sopu-soft: #f6f9fc;
  width: min(100%, 1240px);
  max-width: 1240px;
  margin: 25px auto 48px;
  padding: 0 clamp(14px, 2.3vw, 28px);
  color: var(--sopu-ink);
  font: 400 15px/1.55 inherit;
  isolation: isolate;
}
.sopu-results, .sopu-results * {box-sizing: border-box;}
.sopu-results * {min-width: 0;}
.sopu-results :is(a, button, summary):focus-visible {outline: 3px solid #087bd1;outline-offset:3px;}
.sopu-results :is(h2,h3,p){text-align:left!important;}
.sopu-results .sopu-heading {display:flex;flex-direction:column;gap:3px;margin:0 0 13px;}
.sopu-results h2 {margin:0!important;color:var(--sopu-ink)!important;font-size:clamp(23px,2.2vw,30px)!important;letter-spacing:-.025em;line-height:1.2;font-weight:750;}
.sopu-results .sopu-query {color:var(--sopu-muted)!important;margin:0;font-size:14px;}
.sopu-results .sopu-kicker {font-size:13px;line-height:1.45;margin:10px 0 12px;color:var(--sopu-muted)!important;}
.sopu-results .sopu-kicker strong{color:var(--sopu-ink);}
.sopu-results .sopu-tags {display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin:9px 0 15px;}
.sopu-results .sopu-tag {display:inline-flex;align-items:center;flex-wrap:wrap;gap:4px;border:1px solid #d6e4ee;background:#f8fbfd;color:#243d57;padding:5px 10px;border-radius:8px;font-size:12px;line-height:1.35;}
.sopu-results .sopu-tag strong{font-size:11px;color:#006a75;font-weight:750;}
.sopu-results .sopu-local-summary{padding:11px 13px;margin:0 0 12px;color:#24445b!important;background:#edf8f8;border-left:3px solid var(--sopu-teal);border-radius:0 8px 8px 0;line-height:1.5;font-size:13px;}
.sopu-results .sopu-notices{margin:8px 0 14px;border:1px solid #dce6ed;border-radius:9px;background:#fff;padding:9px 12px;}
.sopu-results .sopu-notices summary{font-size:13px;color:#34536a;cursor:pointer;font-weight:650;list-style-position:inside;}
.sopu-results .sopu-notices[open]{background:#f7fafc;}
.sopu-results .sopu-notices p{font-size:12px;line-height:1.55;color:var(--sopu-muted)!important;margin:8px 0 0;}
.sopu-results .sopu-tabs{display:flex;flex-wrap:nowrap;gap:7px;overflow-x:auto;scrollbar-width:thin;overscroll-behavior-x:contain;scroll-snap-type:x proximity;border-bottom:1px solid #dce5ec;margin:14px 0 15px;padding:0 0 11px;}
.sopu-results .sopu-tab{scroll-snap-align:start;appearance:none;display:inline-flex;white-space:nowrap;align-items:center;gap:7px;min-height:44px;flex:0 0 auto;border:1px solid #d2dee8;border-radius:8px;background:#fff;color:var(--sopu-ink);font:750 13px/1.2 inherit;padding:8px 11px;cursor:pointer;}
.sopu-results .sopu-tab[aria-selected="true"]{background:var(--sopu-teal);border-color:var(--sopu-teal);color:white;}
.sopu-results .sopu-tab .sopu-count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;background:#e9eff4;color:#203c56;font-size:11px;font-weight:800;}
.sopu-results .sopu-tab[aria-selected="true"] .sopu-count{background:rgba(255,255,255,.18);color:white;}
.sopu-results .sopu-panel[hidden]{display:none!important;}
.sopu-results .sopu-panel{min-width:0;}
.sopu-results .sopu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;align-items:stretch;}
.sopu-results .sopu-card{--sopu-accent:#132b49;position:relative;display:flex;flex-direction:column;min-width:0;min-height:245px;border:1px solid var(--sopu-border);border-radius:16px;background:#fff;overflow:hidden;box-shadow:none;padding:0 16px 15px;color:var(--sopu-ink);}
.sopu-results .sopu-card-head{display:flex;align-items:center;gap:8px;min-width:0;margin:0 -16px 18px;padding:10px 14px;min-height:63px;background:#f6f9fc;border-bottom:1px solid #e6edf2;}
.sopu-results .sopu-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;padding:4px;background:transparent!important;border:0!important;border-radius:0!important;color:var(--sopu-accent)!important;}
.sopu-results .sopu-mark svg{display:block;width:28px!important;height:28px!important;flex:0 0 28px;fill:none!important;stroke:currentColor!important;stroke-width:1.8!important;}
.sopu-results .sopu-card-type{font-size:11px;font-weight:800;line-height:1.35;color:var(--sopu-ink);letter-spacing:.025em;text-transform:uppercase;}
.sopu-results .sopu-area-label{margin-left:auto;display:block;max-width:42%;font-size:10px;font-weight:700;text-align:right;color:var(--sopu-accent);line-height:1.25;overflow-wrap:break-word;}
.sopu-results .sopu-card h3{margin:0 0 12px!important;font-size:17px!important;line-height:1.32!important;letter-spacing:-.015em;overflow-wrap:anywhere;color:var(--sopu-ink)!important;font-weight:750;}
.sopu-results .sopu-card h3 a{color:inherit!important;text-decoration:none!important;}
.sopu-results .sopu-card h3 a:hover{text-decoration:underline!important;}
.sopu-results .sopu-card-meta{flex:1;font-size:13px;line-height:1.5;color:#344c64;overflow-wrap:anywhere;}
.sopu-results .sopu-card-meta p{margin:6px 0 9px!important;color:#344c64!important;line-height:1.5!important;font-size:13px!important;}
.sopu-results .sopu-card-meta a{color:#075b79!important;text-decoration:underline!important;text-underline-offset:2px;}
.sopu-results .sopu-card-meta strong{color:#173451;font-weight:700;}
.sopu-results .sopu-degree{display:inline-flex;align-items:center;margin:1px 0 6px!important;padding:4px 7px;border-radius:6px;background:#e9e6f6;color:#453477;font-size:12px;font-weight:800;line-height:1.35;}
.sopu-results .sopu-prof-class{display:inline-flex;margin-right:5px!important;}
.sopu-results .sopu-prof-route{color:#344c64!important;}
.sopu-results .sopu-course-details{margin:10px 0 0;border-top:1px solid #e5edf3;padding-top:9px;}
.sopu-results .sopu-course-details summary{display:block;cursor:pointer;color:#006a75;font-size:12px;font-weight:750;}
.sopu-results .sopu-course-details summary::after{content:'  +';font-weight:800;}
.sopu-results .sopu-course-details[open] summary::after{content:'  −';}
.sopu-results .sopu-course-details-inner{padding-top:6px;border-top:0;}
.sopu-results .sopu-course-details-inner p{font-size:12px!important;line-height:1.5!important;color:#52677f!important;}
.sopu-results .sopu-evidence{font-weight:700;}
.sopu-results .sopu-evidence-warning{padding:9px 10px;border-left:3px solid #b16e16;border-radius:0 5px 5px 0;background:#fff7e8;color:#624213;font-size:12px;line-height:1.55;}
.sopu-results .sopu-note,.sopu-results .sopu-notlocal{font-size:12px!important;color:#5b6d80!important;line-height:1.5;}
.sopu-results .sopu-card-foot{display:flex;align-items:flex-end;justify-content:flex-start;margin-top:14px;padding-top:12px;border-top:1px solid #dce6ed;}
.sopu-results .sopu-go{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:8px 12px;border:1px solid var(--sopu-teal);border-radius:7px;background:var(--sopu-teal);font-size:13px;font-weight:750;color:white!important;text-decoration:none!important;}
.sopu-results .sopu-go:hover{background:#00525b;border-color:#00525b;color:white!important;}
.sopu-results .sopu-unlinked{font-size:12px;color:#65768a;}
.sopu-results .sopu-empty{margin:10px 0 14px;padding:14px;border:1px dashed #c7d6e1;border-radius:9px;color:#50667d;font-size:13px;}
.sopu-results .sopu-alternatives{margin-top:22px;padding-top:3px;border-top:1px solid #e3e9ef;}
.sopu-results .sopu-subheading{font-size:17px!important;margin:14px 0 4px!important;line-height:1.3;font-weight:750;color:var(--sopu-ink)!important;}
.sopu-results .sopu-notlocal{margin:0 0 13px!important;}
.sopu-results .sopu-more-results{margin-top:15px;border:1px solid #d5e2eb;border-radius:10px;padding:11px 13px;background:#f8fafc;}
.sopu-results .sopu-more-results summary{cursor:pointer;font-size:14px;font-weight:750;color:var(--sopu-teal);}
.sopu-results .sopu-more-results[open]>.sopu-grid{margin-top:14px;}
.sopu-results .sopu-pagination-status{font-size:13px;color:#566c80;margin:12px 0;}
.sopu-results .sopu-pagination{margin:18px 0;}
.sopu-results .sopu-pagination a{display:inline-flex;align-items:center;min-height:43px;border-radius:8px;padding:9px 15px;background:var(--sopu-teal);color:white!important;text-decoration:none;font-size:14px;font-weight:750;}
.sopu-results .sopu-contextual,.sopu-results .sopu-sources-accordion{margin:15px 0 8px;border:1px solid #d9e5ec;border-radius:10px;background:#fff;padding:12px 14px;}
.sopu-results :is(.sopu-contextual,.sopu-sources-accordion)>summary{cursor:pointer;color:var(--sopu-teal);font-weight:750;font-size:13px;}
.sopu-results :is(.sopu-contextual,.sopu-sources-accordion)[open]>.sopu-grid{margin:14px 0 0;}
.sopu-results .sopu-existing-sources{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:15px 0 0;}
.sopu-results .sopu-source-box{border:1px solid #dce7ed;border-radius:12px;padding:14px;min-width:0;background:white;}
.sopu-results .sopu-source-box h3{font-size:15px!important;line-height:1.3!important;margin:0 0 8px!important;color:var(--sopu-ink)!important;}
.sopu-results .sopu-source-box :is(p,li){color:#354961!important;font-size:13px!important;line-height:1.5;margin:7px 0;}
.sopu-results .sopu-source-entry{padding:10px 0;border-top:1px solid #e5edf2;}
.sopu-results .sopu-source-entry details{margin-top:8px;}
.sopu-results .sopu-source-entry summary{cursor:pointer;color:var(--sopu-teal);font-size:13px;font-weight:750;}
.sopu-results .sopu-status{margin-left:6px;font-size:11px;color:#627184;}
.sopu-results .sopu-guide-links{display:flex;flex-wrap:wrap;gap:7px;}
.sopu-results .sopu-guide-links a{padding:7px 9px;border:1px solid #cde2e7;border-radius:7px;color:var(--sopu-teal);font-size:12px;text-decoration:none;}
@media (max-width:1050px){.sopu-results .sopu-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (max-width:699px){
  .sopu-results{margin-top:18px;padding:0 14px;}
  .sopu-results .sopu-grid{grid-template-columns:minmax(0,1fr);gap:12px;}
  .sopu-results .sopu-existing-sources{grid-template-columns:minmax(0,1fr);}
  .sopu-results .sopu-tabs{margin-inline:-2px;}
  .sopu-results .sopu-card{min-height:0;padding:0 15px 14px;}
  .sopu-results .sopu-card-head{margin:0 -15px 16px;}
  .sopu-results .sopu-card h3{font-size:17px!important;}
  .sopu-results .sopu-tab{min-height:44px;font-size:13px;}
  .sopu-results .sopu-card-meta{font-size:14px;}
  .sopu-results .sopu-card-meta p{font-size:14px!important;}
}
@media (prefers-reduced-motion:reduce){.sopu-results *{scroll-behavior:auto!important;}}


/* SOP 1.3.3 — MATCH the approved Professioni catalog. Presentation only. */
.sopu-results .sopu-grid{gap:14px;align-items:stretch}
.sopu-results .sopu-card{
 --sopu-accent:#132b49;
 min-height:285px;padding:0;border:1px solid #d2dee8;border-radius:15px;
 background:#fff;box-shadow:none;display:flex;flex-direction:column;overflow:hidden;
}
.sopu-results .sopu-card-head{
 height:48px;min-height:48px;flex:0 0 48px;position:relative;
 display:block;margin:0;padding:0;border:0;
 background:color-mix(in srgb,var(--sopu-accent) 12%,#fff);
}
.sopu-results .sopu-mark{
 position:absolute;left:13px;bottom:-16px;z-index:1;
 display:grid;place-items:center;width:36px;height:36px;
 padding:7px;background:var(--sopu-accent)!important;color:#fff!important;
 border:3px solid #fff!important;border-radius:50%!important;
 box-sizing:border-box;
}
.sopu-results .sopu-mark svg{width:18px!important;height:18px!important;stroke:currentColor!important;flex:0 0 18px;stroke-width:1.9!important}
.sopu-results .sopu-card-body{flex:1;display:flex;flex-direction:column;align-items:stretch;padding:23px 17px 8px;min-width:0}
.sopu-results .sopu-card-type{display:block;margin:0 0 10px;font-size:11px;font-weight:850;line-height:1.2;letter-spacing:.025em;color:#132b49;text-transform:uppercase}
.sopu-results .sopu-card h3{font-size:18px!important;line-height:1.25!important;margin:0 0 11px!important;color:#132b49!important;font-weight:750;overflow-wrap:break-word}
.sopu-results .sopu-area-line{display:flex;align-items:center;gap:7px;font-size:12px!important;line-height:1.35!important;margin:0 0 10px!important;color:#344963!important;font-weight:650}
.sopu-results .sopu-area-icon{flex:0 0 19px;display:inline-grid;place-items:center;width:19px;height:19px;color:var(--sopu-accent)}
.sopu-results .sopu-area-icon svg{width:17px;height:17px;stroke:currentColor;fill:none}
.sopu-results .sopu-identity{display:flex;align-items:center;gap:7px;font-size:12px!important;line-height:1.3!important;margin:0 0 9px!important;color:#667d91!important}
.sopu-results .sopu-identity svg{width:16px;height:16px;color:#667d91;flex:0 0 16px}
.sopu-results .sopu-card-meta{flex:1;font-size:13px;line-height:1.5;overflow-wrap:break-word;color:#3f566d}
.sopu-results .sopu-card-meta p{font-size:13px!important;margin:5px 0 8px!important;line-height:1.5!important;color:#40566b!important}
.sopu-results .sopu-card-meta p.sopu-degree{margin-top:2px!important;padding:4px 7px;background:#e9e6f6;color:#433677!important}
.sopu-results .sopu-card-foot{
 display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:8px;
 margin:7px 17px 17px;padding-top:13px;border-top:1px solid #dbe5ee;
}
.sopu-results .sopu-go,.sopu-results .sopu-save{
 display:inline-flex;justify-content:center;align-items:center;gap:7px;
 width:100%;min-height:43px;margin:0;padding:8px 8px;
 border-radius:7px;font-family:inherit;font-size:13px;font-weight:800;line-height:1.2;cursor:pointer;text-decoration:none!important;
 transition:background-color .12s ease,border-color .12s ease;
}
.sopu-results .sopu-go{color:#fff!important;background:#006a75;border:1px solid #006a75}
.sopu-results .sopu-go:hover{color:#fff!important;background:#00545c;border-color:#00545c}
.sopu-results .sopu-save{color:#123a57!important;background:#fff;border:1px solid #b9cddd}
.sopu-results .sopu-save:hover{background:#f6fafd;border-color:#8fb0c8}
.sopu-results .sopu-go svg,.sopu-results .sopu-save svg{width:17px;height:17px;flex:0 0 17px;stroke:currentColor;fill:none}
.sopu-results .sopu-save[aria-pressed="true"]{background:#eaf7f4;border-color:#006a75;color:#00595f!important}
.sopu-results .sopu-save[aria-pressed="true"] svg{fill:currentColor}
.sopu-results .sopu-go:only-child,.sopu-results .sopu-unlinked:only-child{grid-column:1/-1}
.sopu-results .sopu-card:focus-within{border-color:#739bb7}
.sopu-results .sopu-course-details summary{font-size:13px}
@media (max-width:699px){
 .sopu-results .sopu-card{min-height:0}
 .sopu-results .sopu-card-head{height:50px;min-height:50px}
 .sopu-results .sopu-card-body{padding:24px 16px 9px}
 .sopu-results .sopu-card-foot{margin:9px 16px 16px}
 .sopu-results .sopu-card h3{font-size:18px!important}
 .sopu-results .sopu-card-meta p{font-size:14px!important}
 .sopu-results .sopu-area-line{font-size:13px!important}
 .sopu-results .sopu-go,.sopu-results .sopu-save{min-height:44px}
}
