/* Scoped visual layer for the NONOS scenario explorer. */
.nonos-graph-explorer{--ng-text:#eaf4ff;--ng-muted:#9cabbf;--ng-teal:#39ead0;color:var(--ng-text);font:inherit;isolation:isolate}.nonos-graph-explorer *{box-sizing:border-box}.nonos-graph-explorer [hidden]{display:none!important}.ng-scenario{position:relative;background:radial-gradient(ellipse at 94% 3%,rgba(23,97,124,.25),transparent 48%),#09131f;border:1px solid #244253;border-radius:24px;padding:clamp(22px,4vw,52px);margin:0 0 64px;overflow:hidden}.ng-scenario:before{content:"";position:absolute;left:8%;right:8%;top:0;height:1px;background:linear-gradient(90deg,transparent,#39ead0,#48b8ff,transparent)}.ng-heading{max-width:900px;margin-bottom:30px}.ng-eyebrow{display:block;color:var(--ng-teal);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;margin-bottom:15px}.nonos-graph-explorer h2{color:#f1f7ff;font-size:clamp(27px,3.1vw,44px);line-height:1.15;letter-spacing:-.025em;margin:0 0 22px}.nonos-graph-explorer p{line-height:1.7}.ng-heading p{color:var(--ng-muted);font-size:16px;margin:0;max-width:800px}.ng-scenario-controls{display:grid;grid-template-columns:1fr 1.1fr 1fr;gap:16px}.ng-field{display:flex;flex-direction:column;gap:10px;font-size:12px;line-height:1.5;color:#c6d3e3;font-weight:600;min-width:0}.nonos-graph-explorer input:not([type=checkbox]),.nonos-graph-explorer select{font:inherit;font-size:14px;line-height:1.5;width:100%;max-width:100%;height:48px;border:1px solid #30475c;background:#0c1b2a;color:#f1f7ff;border-radius:9px;padding:10px 12px;box-shadow:none}.nonos-graph-explorer select{padding-right:26px}.nonos-graph-explorer select option{background:#0c1b2a;color:#f1f7ff}.nonos-graph-explorer input::placeholder{color:#8598ae}.nonos-graph-explorer :is(button,input,select,a,summary):focus-visible{outline:2px solid #39ead0;outline-offset:4px}.ng-small{color:var(--ng-muted);font-size:12px;margin:15px 0 25px}.ng-categories{border:0;padding:0;margin:26px 0 32px;min-width:0}.ng-categories legend{font-size:13px;font-weight:600;margin-bottom:14px;color:#d6e5f4}.ng-category-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}.ng-category{border:1px solid #294157;background:rgba(14,31,46,.75);border-radius:10px;padding:13px 10px;color:#aebdd0;display:grid;grid-template-columns:7px 1fr;gap:7px;text-align:left;cursor:pointer;font:inherit;line-height:1.45;min-height:88px;align-content:center;transition:background .18s,border-color .18s,transform .18s}.ng-category:hover{transform:translateY(-2px);border-color:var(--ng-category-colour);background:#102739}.ng-category[aria-pressed=true],.ng-category[aria-pressed=mixed]{border-color:var(--ng-category-colour);color:#effbff;background:#112a38}.ng-category-dot{height:6px;width:6px;border-radius:50%;background:var(--ng-category-colour);margin-top:5px}.ng-category-label{font-size:11px;font-weight:600}.ng-category-count{grid-column:2;font-size:10px;opacity:.7}.ng-category:disabled{opacity:.35;cursor:default;transform:none}.ng-stats{display:grid;grid-template-columns:.75fr 1fr 1.15fr;border-top:1px solid #244253;border-bottom:1px solid #244253;padding:25px 0;margin:0 0 32px}.ng-stat{padding:0 22px;min-width:0;border-right:1px solid #244253}.ng-stat:first-child{padding-left:0}.ng-stat:last-child{border:0;padding-right:0}.ng-stat-label{font-size:12px;color:#aebdd0;display:block;margin-bottom:11px}.ng-stat strong{display:block;font-variant-numeric:tabular-nums;color:#ecf8ff;font-size:clamp(29px,3.9vw,54px);line-height:1.2;letter-spacing:-.04em}.ng-stat:last-child strong{color:#39ead0}.ng-stat-foot{font-size:10px;color:#93a5bc;display:block;margin-top:10px;line-height:1.5}.ng-chart{margin:0;padding:0}.ng-chart figcaption{font-size:13px;color:#dae8f7;font-weight:600;margin-bottom:22px}.ng-chart-row{display:grid;grid-template-columns:205px minmax(20px,1fr) 90px;align-items:center;gap:18px;min-height:34px;padding:5px 0}.ng-chart-label{font-size:11px;line-height:1.35;color:#a8b8cc}.ng-track{height:9px;border-radius:20px;background:#132535;overflow:hidden}.ng-fill{height:100%;border-radius:20px;transition:width .4s cubic-bezier(.25,.8,.25,1)}.ng-chart-value{text-align:right;color:#dfedfa;font-size:12px;font-variant-numeric:tabular-nums}.ng-overlap-note{border-left:2px solid #2b7f8d;padding-left:15px;color:#a3b9ce;font-size:12px;margin:28px 0 20px}.ng-methodology{border-top:1px solid #244253;padding-top:17px}.ng-methodology summary{cursor:pointer;font-size:12px;color:#7bdacb;line-height:1.6}.ng-methodology p{font-size:12px;color:#a3b4c7;margin:16px 0 0}.ng-browse>h2{font-size:clamp(25px,2.6vw,35px);margin-bottom:27px}.ng-filterbar{display:grid;grid-template-columns:1.4fr 1fr 1.15fr;gap:16px}.ng-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:22px 0 28px}.ng-result-count{font-size:12px;color:var(--ng-muted);margin:0}.ng-actions{display:flex;gap:8px;flex-wrap:wrap}.ng-button{background:#102637;border:1px solid #32536c;border-radius:8px;color:#d8e9f6;font:inherit;font-size:12px;line-height:1.4;padding:11px 16px;cursor:pointer;transition:border-color .2s,background .2s}.ng-button:hover{border-color:#39ead0;background:#163c48;color:#fff}.ng-button:disabled{opacity:.4;cursor:default}.ng-case-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.ng-case{display:flex;flex-direction:column;min-width:0;padding:24px;background:linear-gradient(135deg,#0d1b2a,#09131f);border:1px solid #22364b;border-radius:16px;transition:border-color .2s,box-shadow .2s}.ng-case:hover{border-color:#3b687d;box-shadow:0 8px 30px #020c1644}.ng-case.is-selected{border-color:#269783;background:linear-gradient(135deg,#102a32,#0a1825)}.ng-card-top{display:flex;flex-wrap:wrap;align-items:flex-start;gap:14px;justify-content:space-between;margin-bottom:22px}.ng-card-meta{max-width:calc(100% - 80px);color:#79bbc8;font-size:9px;line-height:1.55;font-weight:700;letter-spacing:.065em;text-transform:uppercase}.ng-pick{display:flex;gap:7px;align-items:center;font-size:11px;color:#bdcfde;cursor:pointer}.ng-pick input{accent-color:#39ead0;width:16px;height:16px;margin:0;cursor:pointer}.ng-case h3{font-size:21px;line-height:1.3;letter-spacing:-.01em;margin:0 0 18px;color:#edf8ff}.ng-case a{color:inherit;text-decoration:none}.ng-case a:hover{color:#4becd5}.ng-card-intro{font-size:13px;color:#9badc3;margin:0 0 20px;line-height:1.75!important}.ng-connectivity{margin:auto 0 23px;font-size:10px;color:#9cb0c4}.ng-connectivity summary{cursor:pointer;line-height:1.6}.ng-connectivity summary.is-connected{color:#68d9c7}.ng-connectivity p{font-size:11px;line-height:1.65;margin:12px 0 0}.ng-card-numbers{display:flex;justify-content:space-between;gap:14px;align-items:flex-end;padding-top:18px;border-top:1px solid #233b4f}.ng-card-numbers strong{display:block;font-size:22px;line-height:1.4;letter-spacing:-.02em;font-variant-numeric:tabular-nums;color:#d6f1ff}.ng-card-numbers span{display:block;color:#8296ae;font-size:9px;margin-top:3px;line-height:1.5}.ng-explore{font-size:11px;white-space:nowrap;padding-bottom:3px}.ng-more{display:block;margin:30px auto 0;min-width:210px}.ng-empty,.ng-error,.ng-loading{padding:30px;color:#a4b9cf;text-align:center}.ng-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1100px){.ng-category-grid{grid-template-columns:repeat(5,minmax(0,1fr))}.ng-category{padding:11px 8px}.ng-category-label{font-size:10px}.ng-case-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ng-filterbar{grid-template-columns:1fr 1fr}.ng-filterbar .ng-field:first-child{grid-column:1/-1}.ng-toolbar{align-items:flex-start}.ng-chart-row{grid-template-columns:175px minmax(20px,1fr) 84px}}
@media(max-width:700px){.ng-scenario{padding:23px 18px;border-radius:16px;margin-bottom:42px}.ng-scenario-controls{grid-template-columns:1fr 1fr;gap:13px}.ng-scenario-controls .ng-field:last-child{grid-column:1/-1}.ng-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.ng-category{min-height:64px;padding:10px 12px}.ng-category-label{font-size:11px}.ng-category-count{font-size:10px}.ng-stats{grid-template-columns:1fr 1fr;gap:20px;padding:22px 0}.ng-stat{padding:0;border:0}.ng-stat:first-child{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;border-bottom:1px solid #244253;padding-bottom:18px}.ng-stat:first-child .ng-stat-label{margin:0}.ng-stat:first-child .ng-stat-foot{grid-column:1;grid-row:2}.ng-stat:first-child strong{grid-column:2;grid-row:1/3;font-size:42px}.ng-stat strong{font-size:30px}.ng-stat-label{font-size:11px}.ng-stat-foot{font-size:9px}.ng-chart-row{grid-template-columns:minmax(0,1fr) 80px;gap:6px 12px;padding:7px 0}.ng-chart-label{grid-row:1;grid-column:1;font-size:10px}.ng-chart-value{grid-row:1;grid-column:2;font-size:11px}.ng-track{grid-row:2;grid-column:1/-1;height:6px}.ng-filterbar{grid-template-columns:1fr}.ng-filterbar .ng-field:first-child{grid-column:auto}.ng-toolbar{flex-direction:column;gap:14px}.ng-case-grid{grid-template-columns:1fr}.ng-case{padding:23px}.ng-case h3{font-size:22px}.ng-overlap-note{font-size:11px}.ng-methodology p{font-size:11px}.ng-small{font-size:11px}.ng-actions{gap:7px}.ng-button{padding:10px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){.nonos-graph-explorer *{transition:none!important;scroll-behavior:auto!important}}
/* Override the base tool control reset without affecting other tools. */
.nonos-graph-explorer .ng-button{font-size:12px;color:#d8e9f6}.nonos-graph-explorer .ng-button:disabled,.nonos-graph-explorer .ng-category:disabled{cursor:default}.nonos-graph-explorer .ng-button:disabled{opacity:.4}.nonos-graph-explorer .ng-category:disabled{opacity:.35}@media(max-width:700px){.nonos-graph-explorer .ng-button{font-size:11px}}

/* v1.2.3: accessible research labels and totals, with room for complete names. */
.nonos-site .nonos-graph-explorer { font-size: 18px; }
.nonos-site .nonos-graph-explorer .ng-scenario { margin-bottom: 72px; }
.nonos-site .nonos-graph-explorer .ng-eyebrow { font-size: 16px; letter-spacing: .09em; }
.nonos-site .nonos-graph-explorer .ng-heading p { font-size: 18px !important; line-height: 1.8; }
.nonos-site .nonos-graph-explorer .ng-field { font-size: 17px; gap: 12px; }
.nonos-site .nonos-graph-explorer input:not([type=checkbox]),
.nonos-site .nonos-graph-explorer select { font-size: 17px; height: 54px; padding: 12px 14px; }
.nonos-site .nonos-graph-explorer .ng-small,
.nonos-site .nonos-graph-explorer .ng-result-count,
.nonos-site .nonos-graph-explorer .ng-methodology p,
.nonos-site .nonos-graph-explorer .ng-overlap-note { font-size: 16px !important; line-height: 1.8; }
.nonos-site .nonos-graph-explorer .ng-categories legend { font-size: 18px; margin-bottom: 20px; }
.nonos-site .nonos-graph-explorer .ng-category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.nonos-site .nonos-graph-explorer .ng-category { grid-template-columns: 8px minmax(0, 1fr); min-height: 124px; padding: 19px 18px; gap: 9px 12px; }
.nonos-site .nonos-graph-explorer .ng-category-dot { width: 8px; height: 8px; margin-top: 9px; }
.nonos-site .nonos-graph-explorer .ng-category-label { font-size: 17px; line-height: 1.55; overflow-wrap: normal; }
.nonos-site .nonos-graph-explorer .ng-category-count { font-size: 16px; line-height: 1.55; opacity: 1; color: #b6cbdb; }
.nonos-site .nonos-graph-explorer .ng-stats { gap: 0; padding-block: 32px; }
.nonos-site .nonos-graph-explorer .ng-stat-label { font-size: 17px; line-height: 1.55; }
.nonos-site .nonos-graph-explorer .ng-stat-foot { font-size: 16px; line-height: 1.65; }
.nonos-site .nonos-graph-explorer .ng-stat strong { font-size: clamp(32px, 3.5vw, 50px); overflow-wrap: anywhere; }
.nonos-site .nonos-graph-explorer .ng-chart figcaption { font-size: 18px; line-height: 1.6; margin-bottom: 26px; }
.nonos-site .nonos-graph-explorer .ng-chart-row { grid-template-columns: minmax(220px, 1.05fr) minmax(80px, 1.7fr) minmax(100px, .45fr); gap: 22px; min-height: 58px; padding: 10px 0; }
.nonos-site .nonos-graph-explorer .ng-chart-label { font-size: 17px; line-height: 1.5; color: #bdd0df; }
.nonos-site .nonos-graph-explorer .ng-chart-value { font-size: 17px; line-height: 1.5; }
.nonos-site .nonos-graph-explorer .ng-track { height: 12px; }
.nonos-site .nonos-graph-explorer .ng-overlap-note { padding-left: 20px; margin: 36px 0 28px; }
.nonos-site .nonos-graph-explorer .ng-methodology { padding-top: 22px; }
.nonos-site .nonos-graph-explorer .ng-methodology summary { font-size: 17px; line-height: 1.7; padding-block: 6px; }
.nonos-site .nonos-graph-explorer .ng-toolbar { margin: 26px 0 32px; flex-wrap: wrap; }
.nonos-site .nonos-graph-explorer .ng-button { font-size: 17px; line-height: 1.5; padding: 12px 18px; min-height: 50px; white-space: normal; }
.nonos-site .nonos-graph-explorer .ng-case-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.nonos-site .nonos-graph-explorer .ng-case { padding: 28px; }
.nonos-site .nonos-graph-explorer .ng-card-top { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 14px; }
.nonos-site .nonos-graph-explorer .ng-card-meta { max-width: none; font-size: 16px; line-height: 1.55; letter-spacing: .025em; }
.nonos-site .nonos-graph-explorer .ng-pick { font-size: 16px; min-height: 28px; gap: 9px; }
.nonos-site .nonos-graph-explorer .ng-pick input { width: 20px; height: 20px; flex-shrink: 0; }
.nonos-site .nonos-graph-explorer .ng-case h3 { font-size: 26px; line-height: 1.3; margin-bottom: 22px; }
.nonos-site .nonos-graph-explorer .ng-card-intro { font-size: 18px !important; line-height: 1.8 !important; }
.nonos-site .nonos-graph-explorer .ng-connectivity,
.nonos-site .nonos-graph-explorer .ng-connectivity p { font-size: 16px !important; line-height: 1.75; }
.nonos-site .nonos-graph-explorer .ng-connectivity summary { padding-block: 6px; }
.nonos-site .nonos-graph-explorer .ng-card-numbers { flex-wrap: wrap; align-items: flex-start; gap: 18px; }
.nonos-site .nonos-graph-explorer .ng-card-numbers strong { font-size: 28px; line-height: 1.4; }
.nonos-site .nonos-graph-explorer .ng-card-numbers span { font-size: 16px; line-height: 1.6; }
.nonos-site .nonos-graph-explorer .ng-explore { font-size: 17px; line-height: 1.6; white-space: normal; }
@media (max-width: 1000px) {
  .nonos-site .nonos-graph-explorer .ng-scenario-controls { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .nonos-site .nonos-graph-explorer .ng-scenario-controls .ng-field { grid-column: auto; }
  .nonos-site .nonos-graph-explorer .ng-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nonos-site .nonos-graph-explorer .ng-chart-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 18px; padding: 13px 0; }
  .nonos-site .nonos-graph-explorer .ng-chart-label { grid-row: 1; grid-column: 1; }
  .nonos-site .nonos-graph-explorer .ng-chart-value { grid-row: 1; grid-column: 2; min-width: 74px; }
  .nonos-site .nonos-graph-explorer .ng-track { grid-row: 2; grid-column: 1 / -1; height: 10px; }
}
@media (max-width: 760px) {
  .nonos-site .nonos-graph-explorer .ng-scenario { padding: 28px 22px; margin-bottom: 52px; }
  .nonos-site .nonos-graph-explorer .ng-category { padding: 16px; min-height: 116px; }
  .nonos-site .nonos-graph-explorer .ng-stats { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .nonos-site .nonos-graph-explorer .ng-stat,
  .nonos-site .nonos-graph-explorer .ng-stat:first-child { display: block; grid-column: auto; padding: 0 0 22px; border: 0; border-bottom: 1px solid #244253; }
  .nonos-site .nonos-graph-explorer .ng-stat:last-child { padding-bottom: 0; border-bottom: 0; }
  .nonos-site .nonos-graph-explorer .ng-stat strong,
  .nonos-site .nonos-graph-explorer .ng-stat:first-child strong { font-size: 40px; margin-top: 10px; }
  .nonos-site .nonos-graph-explorer .ng-case-grid { grid-template-columns: minmax(0, 1fr); }
  .nonos-site .nonos-graph-explorer .ng-filterbar { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .nonos-site .nonos-graph-explorer .ng-filterbar .ng-field:first-child { grid-column: auto; }
  .nonos-site .nonos-graph-explorer .ng-case { padding: 25px; }
}
@media (max-width: 480px) {
  .nonos-site .nonos-graph-explorer .ng-category-grid { grid-template-columns: minmax(0, 1fr); }
  .nonos-site .nonos-graph-explorer .ng-category { min-height: 100px; }
  .nonos-site .nonos-graph-explorer .ng-card-top { grid-template-columns: minmax(0, 1fr); }
  .nonos-site .nonos-graph-explorer .ng-pick { justify-self: start; }
  .nonos-site .nonos-graph-explorer .ng-chart-row { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 12px; }
  .nonos-site .nonos-graph-explorer .ng-chart-label,
  .nonos-site .nonos-graph-explorer .ng-chart-value { font-size: 16px; }
  .nonos-site .nonos-graph-explorer .ng-heading p,
  .nonos-site .nonos-graph-explorer .ng-card-intro { font-size: 17px !important; }
}
