/* ===========================================================================
   REPORT KIT - the shared printed-report visual system
   ---------------------------------------------------------------------------
   One report look for every tool on this site, and for any tool added later.
   Extracted from Protection & Coordination, which had the only real report of
   the three: a deliverable that is printed, signed and kept, so the layout
   follows paper conventions (cover, at-a-glance summary, then one card per
   section) and drops every decorative choice under @media print, where ink and
   contrast are the only things that matter.

   THE TOKEN CONTRACT, AND WHY IT EXISTS
   The three tools do not share a CSS variable set. All of them define
   --bg --ink --line --copper --green --amber --red --mono, but
   --ink-dim/--ink-faint/--panel/--panel-2/--line-soft exist only in
   Coordination, while --muted/--card/--elev exist only in AC Conductor and
   OCPD. Lifted verbatim, half of these colours would resolve to nothing in
   exactly the two tools this kit was written to fix. So every rule below
   references a --rep-* token, and each token falls back along the chain
   "Coordination's name, then the other two's name, then a literal". A tool
   that defines neither still gets a correct report; a tool that defines
   either gets its own theme, light or dark, with no per-tool CSS to write.

   Loaded by: each tool's src/build.py (offline single-file build) and
   build/build_client.py (web build). Never edit a copy - there is one source.
   =========================================================================== */

/* The token contract has to cover every root the kit renders into, not just
   the document: .report-actions is a SIBLING of .rep-doc, so declaring the
   tokens only on the document left the Print button's var() references
   unresolved - which does not fall back, it makes the whole declaration
   invalid at computed-value time, and the button rendered as a bare browser
   default with a transparent background and square corners. */
.rep-doc, .report-actions, .ack-overlay {
  --rep-ink:        var(--ink, #1D1D1F);
  --rep-ink-dim:    var(--ink-dim, var(--muted, #6E6E73));
  --rep-ink-faint:  var(--ink-faint, var(--muted, #8A8A8E));
  --rep-line:       var(--line, #D2D2D7);
  --rep-line-soft:  var(--line-soft, var(--line, #D2D2D7));
  --rep-panel:      var(--panel, var(--card, #FFFFFF));
  --rep-panel-2:    var(--panel-2, var(--elev, #F5F5F7));
  --rep-bg:         var(--bg, #FFFFFF);
  --rep-copper:     var(--copper, #B05E1E);
  --rep-copper-bright: var(--copper-bright, var(--copper, #E08D3C));
  --rep-green:      var(--green, #2E7D46);
  --rep-amber:      var(--amber, #B5820E);
  --rep-red:        var(--red, #C0392B);
  --rep-blue:       var(--blue, #5B8DD9);
  --rep-mono:       var(--mono, ui-monospace, Menlo, Consolas, monospace);
  --rep-font:       var(--font, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
  --rep-r-pill:     var(--r-pill, 999px);
  --rep-muted:      var(--muted, var(--ink-dim, #6E6E73));
  --rep-card:       var(--card, var(--panel, #FFFFFF));
  --rep-elev:       var(--elev, var(--panel-2, #F5F5F7));
  --rep-scrim:      var(--scrim, rgba(0, 0, 0, 0.55));
  --rep-copper-text: var(--copper-text, var(--copper, #B05E1E));
  --rep-red-text:   var(--red-text, var(--red, #C0392B));
  --rep-r-card:     var(--r-card, 18px);
}

  /* ============================ REPORT =====================================
     A deliverable, not a screen: this is printed, signed and kept. So the
     layout is built on paper conventions - a cover block, an at-a-glance
     summary, then one card per section - and every decorative choice is
     dropped in @media print further down, where ink and contrast are the only
     things that matter. Motion is strictly additive (see the reveal below).
     ========================================================================= */
  .report-actions {
    margin-bottom: 16px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
  }
  /* Styled here rather than left to the host app's own .btn: only one of the
     three tools defines that class, so the other two printed from a bare
     browser-default button. */
  .report-actions .btn {
    font: 600 13px/1 var(--rep-font); padding: 11px 18px; cursor: pointer;
    border-radius: var(--rep-r-pill); border: 1px solid var(--rep-copper);
    background: var(--rep-copper); color: #1a1206; min-height: 40px;
  }
  .report-actions .btn:hover { filter: brightness(1.06); }
  .report-actions .btn:focus-visible { outline: 2px solid var(--rep-copper); outline-offset: 2px; }
  .rep-scope { display: flex; gap: 14px; font-size: 12.5px; color: var(--rep-ink-dim); }
  .rep-scope label { cursor: pointer; display: inline-flex; align-items: center; gap: 5px; }

  .report-doc {
    background: var(--rep-panel); border: 1px solid var(--rep-line); border-radius: 14px;
    padding: 30px clamp(18px, 3.5vw, 40px) 34px;
  }

  /* Staggered reveal. Additive only: the base state is fully visible, and the
     animation merely plays on top, so if it never runs nothing is hidden. */
  @media (prefers-reduced-motion: no-preference) {
    .rep-doc > * { animation: rep-rise 0.44s cubic-bezier(.22,.61,.36,1) both;
                   animation-delay: calc(var(--rs, 0) * 55ms); }
    @keyframes rep-rise { from { opacity: 0; transform: translateY(10px); } }
  }

  /* ---- Cover ---- */
  .rep-cover { position: relative; padding-bottom: 20px; margin-bottom: 22px;
               border-bottom: 1px solid var(--rep-line); }
  .rep-cover-bar {
    width: 54px; height: 4px; border-radius: 999px; margin-bottom: 16px;
    background: linear-gradient(90deg, var(--rep-copper-bright), var(--rep-amber));
  }
  .rep-eyebrow {
    font-family: var(--rep-mono); font-size: 10.5px; text-transform: uppercase;
    letter-spacing: 0.16em; color: var(--rep-copper-bright); margin-bottom: 8px;
  }
  .rep-title {
    font-size: clamp(24px, 3.4vw, 34px); font-weight: 700; line-height: 1.15;
    letter-spacing: -0.02em; margin: 0; color: var(--rep-ink);
  }
  .rep-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
  .rep-chip {
    display: inline-flex; align-items: baseline; gap: 7px; padding: 5px 11px;
    border-radius: 999px; background: var(--rep-panel-2); border: 1px solid var(--rep-line);
    font-family: var(--rep-mono); font-size: 11px; color: var(--rep-ink);
  }
  .rep-chip-k { color: var(--rep-ink-faint); text-transform: uppercase; letter-spacing: 0.07em; font-size: 9.5px; }

  /* ---- At a glance ---- */
  .rep-kpis {
    display: grid; gap: 12px; margin-bottom: 24px;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  }
  /* Belt and braces against the app chrome's own element rules: this block
     lives inside the same document as the tool, and a bare `header {...}`
     rule there had already caught the cover once. */
  .rep-cover, .rep-cover-bar { display: block; }
  .rep-kpi {
    padding: 15px 16px; border-radius: 11px;
    background: var(--rep-panel-2); border: 1px solid var(--rep-line);
  }
  .rep-kpi-k {
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.09em;
    color: var(--rep-ink-faint); font-weight: 700;
  }
  .rep-kpi-v {
    font-family: var(--rep-mono); font-size: 26px; font-weight: 700; line-height: 1.15;
    margin-top: 8px; color: var(--rep-ink); letter-spacing: -0.02em;
  }
  .rep-kpi-u { font-size: 12px; color: var(--rep-ink-dim); margin-left: 4px; font-weight: 500; }
  .rep-kpi-sub { font-size: 11px; color: var(--rep-ink-dim); margin-top: 6px; line-height: 1.5; }
  /* The headline verdict spans wider and carries the colour - it is the one
     thing a reader must not be able to miss. */
  .rep-kpi--verdict { grid-column: 1 / -1; }
  .rep-kpi--verdict .rep-kpi-v { font-size: clamp(17px, 2.1vw, 23px); }
  .rep-kpi--verdict.is-ok { background: rgba(95,191,122,0.10); border-color: rgba(95,191,122,0.45); }
  .rep-kpi--verdict.is-ok .rep-kpi-v { color: var(--rep-green); }
  .rep-kpi--verdict.is-warn { background: rgba(224,180,60,0.10); border-color: rgba(224,180,60,0.45); }
  .rep-kpi--verdict.is-warn .rep-kpi-v { color: var(--rep-amber); }
  .rep-kpi--verdict.is-bad { background: rgba(217,89,76,0.10); border-color: rgba(217,89,76,0.45); }
  .rep-kpi--verdict.is-bad .rep-kpi-v { color: var(--rep-red); }

  /* ---- Section cards ---- */
  .rep-card {
    border: 1px solid var(--rep-line); border-radius: 12px; padding: 18px clamp(14px, 2.2vw, 22px) 20px;
    margin-bottom: 16px; background: var(--rep-panel);
    transition: border-color .18s ease, box-shadow .18s ease;
  }
  @media (prefers-reduced-motion: no-preference) {
    .rep-card:hover { border-color: var(--rep-line-soft); box-shadow: 0 6px 22px rgba(0,0,0,0.06); }
  }
  .rep-card-head {
    display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
    flex-wrap: wrap; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid var(--rep-line);
  }
  .rep-h {
    font-size: 15px; font-weight: 700; margin: 0; color: var(--rep-ink); letter-spacing: -0.01em;
  }
  .rep-h-of { color: var(--rep-ink-faint); font-weight: 500; }
  .rep-h3 {
    font-size: 11px; text-transform: uppercase; letter-spacing: 0.09em; font-weight: 700;
    color: var(--rep-ink-faint); margin: 18px 0 10px;
  }
  .rep-pill {
    font-family: var(--rep-mono); font-size: 11px; padding: 4px 10px; border-radius: 999px;
    background: rgba(224,180,60,0.10); border: 1px solid rgba(224,180,60,0.35); color: var(--rep-amber);
    white-space: nowrap;
  }
  .rep-pill--quiet { background: var(--rep-panel-2); border-color: var(--rep-line); color: var(--rep-ink-dim); }

  /* ---- Parameters ---- */
  /* Separators are drawn ON the cells, not as gaps showing the container
     behind them: with an odd number of parameters the leftover grid area used
     to render as a solid grey block that read as a broken cell. */
  .rep-params { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
                background: var(--rep-panel); border: 1px solid var(--rep-line);
                border-radius: 9px; overflow: hidden; }
  .rep-param { display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
               padding: 10px 13px; background: var(--rep-panel);
               border-right: 1px solid var(--rep-line); border-bottom: 1px solid var(--rep-line); }
  .rep-param-k { font-size: 11.5px; color: var(--rep-ink-dim); }
  .rep-param-v { font-family: var(--rep-mono); font-size: 12.5px; color: var(--rep-ink); font-weight: 600; text-align: right; }

  /* ---- Figure ---- */
  .rep-figure { margin: 0 0 16px; }
  .rep-plot { background: #fff; border: 1px solid var(--rep-line); border-radius: 10px;
              padding: 10px; text-align: center; }
  .rep-plot svg { max-width: min(100%, 540px); height: auto; }
  .rep-figure figcaption { font-size: 11px; color: var(--rep-ink-faint); margin-top: 8px; line-height: 1.55; }

  /* ---- Verdict banner ---- */
  .rep-verdict {
    display: flex; align-items: center; gap: 12px;
    padding: 13px 15px; border-radius: 10px; margin-bottom: 14px; border: 1px solid;
  }
  .rep-verdict-mark {
    width: 26px; height: 26px; flex: 0 0 auto; border-radius: 50%;
    display: inline-flex; align-items: center; justify-content: center;
    font-size: 14px; font-weight: 700; color: #fff;
  }
  .rep-verdict-t { display: flex; flex-direction: column; gap: 2px; }
  .rep-verdict-t b { font-size: 14px; letter-spacing: 0.02em; }
  .rep-verdict-t span { font-size: 11.5px; color: var(--rep-ink-dim); }
  .rep-verdict.is-ok { background: rgba(95,191,122,0.08); border-color: rgba(95,191,122,0.40); }
  .rep-verdict.is-ok .rep-verdict-mark { background: var(--rep-green); }
  .rep-verdict.is-ok b { color: var(--rep-green); }
  .rep-verdict.is-warn { background: rgba(224,180,60,0.08); border-color: rgba(224,180,60,0.40); }
  .rep-verdict.is-warn .rep-verdict-mark { background: var(--rep-amber); }
  .rep-verdict.is-warn b { color: var(--rep-amber); }
  .rep-verdict.is-bad { background: rgba(217,89,76,0.08); border-color: rgba(217,89,76,0.40); }
  .rep-verdict.is-bad .rep-verdict-mark { background: var(--rep-red); }
  .rep-verdict.is-bad b { color: var(--rep-red); }

  /* ---- Tables ---- */
  .rep-tablewrap { overflow-x: auto; }
  .rep-table { width: 100%; border-collapse: collapse; font-size: 12.5px; }
  .rep-table th {
    text-align: left; color: var(--rep-ink-faint); font-size: 9.5px; text-transform: uppercase;
    letter-spacing: 0.08em; padding: 8px 10px; border-bottom: 1px solid var(--rep-line);
    font-weight: 700; white-space: nowrap;
  }
  .rep-table td { padding: 8px 10px; border-bottom: 1px solid var(--rep-line-soft);
                  font-family: var(--rep-mono); font-size: 12px; vertical-align: top; }
  .rep-table tbody tr:last-child td { border-bottom: none; }
  .rep-table tbody tr { transition: background .14s ease; }
  .rep-table tbody tr:hover { background: var(--rep-panel-2); }
  .rep-table td.k { color: var(--rep-ink-dim); font-family: var(--rep-font); width: 46%; }
  .rep-table .rep-num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
  .rep-table .rep-strong { font-weight: 700; color: var(--rep-ink); }
  .rep-table .rep-type { font-family: var(--rep-font); color: var(--rep-ink-dim); white-space: nowrap; }
  .rep-table .rep-pair { font-weight: 600; white-space: nowrap; }
  .rep-table .rep-detail { font-size: 11.5px; line-height: 1.55; }
  .rep-table tr.is-bad td { background: rgba(217,89,76,0.05); }
  .rep-table tr.is-quiet td { color: var(--rep-ink-faint); }
  .rep-table td.k.rep-subhead { color: var(--rep-copper-bright); padding-top: 11px; font-weight: 600; }
  /* status token, shared by the verdict table and the rule-check list */
  .rep-status {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 700;
    border: 1px solid;
  }
  .rep-status.is-ok { color: var(--rep-green); border-color: rgba(95,191,122,0.45); background: rgba(95,191,122,0.10); }
  .rep-status.is-warn { color: var(--rep-amber); border-color: rgba(224,180,60,0.45); background: rgba(224,180,60,0.10); }
  .rep-status.is-bad { color: var(--rep-red); border-color: rgba(217,89,76,0.45); background: rgba(217,89,76,0.10); }
  .rep-status.is-none { color: var(--rep-ink-faint); border-color: var(--rep-line); background: var(--rep-panel-2); }

  /* ---- Device settings ---- */
  .rep-devgrid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); }
  .rep-dev { border: 1px solid var(--rep-line); border-radius: 10px; padding: 12px 13px; background: var(--rep-panel-2); }
  .rep-dev-name { font-weight: 700; font-size: 13px; margin-bottom: 7px;
                  display: flex; align-items: baseline; gap: 7px; flex-wrap: wrap; }
  .rep-dev-kind { font-size: 9.5px; color: var(--rep-ink-faint); font-weight: 600;
                  text-transform: uppercase; letter-spacing: 0.08em; }
  .rep-dev .rep-table td { padding: 5px 0; font-size: 11.5px; }
  .rep-dev .rep-table td.k { width: 52%; }

  /* ---- Rule checks ---- */
  .rep-checks { display: flex; flex-direction: column; gap: 8px; }
  .rep-check { display: flex; gap: 11px; align-items: flex-start; padding: 10px 12px;
               border-radius: 9px; border: 1px solid var(--rep-line); background: var(--rep-panel-2); }
  .rep-check.is-bad { border-color: rgba(217,89,76,0.35); background: rgba(217,89,76,0.05); }
  .rep-check.is-warn { border-color: rgba(224,180,60,0.35); background: rgba(224,180,60,0.05); }
  .rep-check-msg { font-size: 12px; line-height: 1.6; color: var(--rep-ink); }
  .rep-check-cite { font-size: 10px; color: var(--rep-ink-faint); font-family: var(--rep-mono); margin-top: 3px; }

  /* ---- Legal / signature ---- */
  .rep-card--legal { background: var(--rep-panel-2); }
  .rep-disclaimer { padding: 13px 14px; background: var(--rep-panel); border-radius: 9px;
                    font-size: 10.5px; color: var(--rep-ink-dim); line-height: 1.65; border: 1px solid var(--rep-line); }
  .rep-sign { display: flex; flex-wrap: wrap; gap: 26px; margin: 16px 0 0; padding-top: 14px;
              border-top: 1px solid var(--rep-line); }
  .rep-sign > div { display: flex; flex-direction: column; gap: 4px; }
  .rep-sign-k { font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.09em; color: var(--rep-ink-faint); font-weight: 700; }
  .rep-sign-v { font-size: 13.5px; color: var(--rep-ink); font-weight: 600; }
  .rep-blank { display: inline-block; min-width: 220px; border-bottom: 1px solid var(--rep-ink-faint); height: 1.2em; }
  .rep-credit { margin: 14px 0 0; font-size: 10.5px; color: var(--rep-ink-faint); }
  .rep-credit a { color: var(--rep-copper-bright); text-decoration: none; font-weight: 600; }
  .rep-credit a:hover { text-decoration: underline; }

  .rep-path-section + .rep-path-section { page-break-before: always; }
  /* the FIRST path section (no page-break-before, per the rule
     above) shares whatever room is left after Study Parameters. When its
     .rep-plot (page-break-inside: avoid, below) doesn't fit in that
     remainder, the WHOLE plot moves to the next page - but nothing kept
     its own heading glued to it, so the title stayed stranded alone at
     the bottom of the first page with a large blank gap under it where
     the plot used to render. page-break-after:avoid on the heading tells
     the print engine not to break immediately after it, so title+plot
     move together as one unit instead. */
  .rep-path-section .rep-card-head { page-break-after: avoid; }

  /* KM confirmed the blank-page-1 complaint wasn't actually
     fixed by gluing the title to its plot (previous entry) - the REAL
     driver is that .rep-plot svg had no size cap of its own (max-width:
     100%, height:auto, following the SVG's 400:460 viewBox ratio), so in
     print it rendered at nearly the full page WIDTH and, proportionally,
     close to the full page HEIGHT too (~7.8in of a ~9.5in usable Letter
     page) - title+plot together needed almost an entire fresh page no
     matter where they landed, guaranteeing a mostly-blank page whenever
     they didn't start exactly at a page top. Capped to 420px print-only
     (screen view is untouched) - proportionally ~4.8in tall, leaving real
     room for the fault-current line, device settings and verdict table to
     often share the SAME page instead of forcing another near-total jump.
     Explicit @page size, also requested this round: Chrome-family browsers
     use this as the PRE-SELECTED default in the print/Save-as-PDF dialog,
     but it remains a hint the person printing can still override there -
     CSS has no way to force a paper size outright. */
  @page { size: letter; margin: 0.6in; }

  @media print {
    .report-doc { border: none !important; background: #fff !important; padding: 0 !important; }
    /* Screen affordances that mean nothing on paper: the reveal animation, the
       hover lift, and every card shadow. Printing must be deterministic. */
    .rep-doc > * { animation: none !important; opacity: 1 !important; transform: none !important; }
    .rep-card { box-shadow: none !important; border-color: #ddd !important;
                background: #fff !important; page-break-inside: avoid; }
    .rep-table tbody tr:hover { background: transparent !important; }
    .rep-title, .rep-dev-name, .rep-h { color: #111 !important; }
    .rep-eyebrow { color: #7a5320 !important; }
    .rep-cover { border-color: #ccc !important; }
    .rep-cover-bar { background: #7a5320 !important; }
    .rep-h3 { color: #555 !important; }
    .rep-card-head { border-color: #ddd !important; }
    .rep-chip, .rep-pill, .rep-pill--quiet { background: #f7f7f7 !important;
      border-color: #ddd !important; color: #333 !important; }
    .rep-chip-k { color: #777 !important; }
    .rep-table td, .rep-table th { color: #222 !important; border-color: #ddd !important; }
    .rep-table td.k, .rep-dev-kind, .rep-disclaimer, .rep-check-cite,
    .rep-kpi-sub, .rep-figure figcaption, .rep-credit { color: #555 !important; }
    .rep-kpi-k, .rep-sign-k { color: #777 !important; }
    .rep-blank { border-bottom: 1px solid #999 !important; }
    .rep-plot { border: 1px solid #ccc !important; page-break-inside: avoid; }
    .rep-plot svg { max-width: 420px !important; }
    .rep-disclaimer { background: #f4f4f4 !important; border-color: #ddd !important; }
    /* Colour carries meaning on these three, so keep the tint but force a
       border dark enough to survive a greyscale printer. */
    .rep-verdict, .rep-kpi--verdict, .rep-check, .rep-status { border-color: #999 !important; }
    .rep-kpi, .rep-param, .rep-dev, .rep-card--legal { background: #fff !important; border-color: #ddd !important; }
    .rep-params { background: #fff !important; border-color: #ddd !important; }
    .rep-param { border-color: #ddd !important; }
    .rep-devgrid, .rep-kpis { grid-template-columns: 1fr 1fr !important; }
    .rep-credit a { color: #7a5320 !important; }
  }
  /* ---- The acknowledgement record and signature row ------------------------
     These lived in Coordination's own app.css while it was the only tool with
     a report. The kit emits this markup for every tool now, so the styling
     belongs with it. */
  .rep-ackrec { margin: 8px 0 0; padding: 9px 11px; border-radius: 7px; font-size: 11.5px;
    background: rgba(80,160,110,.10); border: 1px solid rgba(80,160,110,.35); color: var(--rep-ink); }
  .rep-ackrec.rep-ackrec-none { background: rgba(184,134,11,.10); border-color: rgba(184,134,11,.40); }
  .rep-ackrec .mono { font-family: var(--rep-mono); font-size: 10.5px; color: var(--rep-ink-dim); }
  .rep-sign { display: flex; flex-wrap: wrap; gap: 18px; margin: 14px 0 0; padding-top: 12px;
    border-top: 1px solid var(--rep-line); font-size: 12.5px; }
  .rep-credit { margin: 10px 0 0; font-size: 10.5px; color: var(--rep-ink-faint); }


/* ---------------------------------------------------------------------------
   Conditions-of-use acknowledgement modal.
   The report is the artifact that leaves the tool, so the declaration belongs
   at the moment it is generated. Taken from AC Conductor, which had the better
   of the two flows (name + an explicit accept checkbox, against Coordination's
   bare prompt()). The kit builds this markup itself on first use, so a tool
   adopting the kit adds nothing to its own index.html.
   --------------------------------------------------------------------------- */
.ack-overlay{position:fixed; inset:0; background:var(--rep-scrim); z-index:9999;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
  display:none; align-items:center; justify-content:center; padding:16px; overflow-y:auto}
.ack-overlay.open{display:flex}
.ack-box{background:var(--rep-card); border:1px solid var(--rep-copper); border-radius:var(--rep-r-card);
  max-width:640px; width:100%; padding:20px 20px 18px; max-height:92vh; overflow-y:auto}
.ack-box h2{margin:0 0 6px; font-size:18px; color:var(--rep-copper-text); font-weight:750}
.ack-lead{margin:0 0 12px; font-size:12.5px; color:var(--rep-muted); line-height:1.45}
.ack-actions{display:flex; gap:10px; align-items:stretch}
.ack-cancel{flex:0 0 auto; background:var(--rep-elev); color:var(--rep-ink);
  border:1px solid var(--rep-line); border-radius:10px; padding:13px 18px;
  font-size:14px; font-weight:600; cursor:pointer; font-family:inherit}
.ack-actions #ackBtn{flex:1}
.ack-body{font-size:13.5px; line-height:1.55; color:var(--rep-ink)}
.ack-body p{margin:0 0 10px}
.ack-body ul{margin:0 0 12px; padding-left:20px}
.ack-body li{margin-bottom:7px; color:var(--rep-muted)}
.ack-body b{color:var(--rep-ink)}
.ack-name{display:block; margin:14px 0 10px; font-size:12.5px; color:var(--rep-muted); font-weight:600}
.ack-name input{display:block; width:100%; margin-top:6px; background:var(--rep-elev);
  border:1px solid var(--rep-line); border-radius:9px; color:var(--rep-ink);
  padding:11px 12px; font-size:15px; font-family:inherit}
.ack-name input:focus{outline:none; border-color:var(--rep-copper-text)}
.ack-check{display:flex; gap:10px; align-items:flex-start; font-size:13px;
  color:var(--rep-ink); cursor:pointer; margin-bottom:6px}
.ack-check input{margin-top:2px; width:17px; height:17px; accent-color:var(--rep-copper-text); flex:none}
.ack-err{min-height:16px; font-size:12px; color:var(--rep-red-text); margin:2px 0 8px}
/* Inter, self-hosted as base64 (no external network call -- these are
   offline single-file deliverables; a Google Fonts CDN link would
   silently fail to load with no internet, which is exactly the case
   this app is designed to still work in). Subset: Latin only, from
   @fontsource/inter 5.0.16. Weights included: 400, 600, 700. */
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:400; font-display:swap;
  src:url(data:font/woff2;base64,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) format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:600; font-display:swap;
  src:url(data:font/woff2;base64,d09GMgABAAAAAFkkABAAAAAA9uQAAFjAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEIG/1gHNReBmA/U1RBVEQAhTQRCAqBy2yBqE0Lh2YAATYCJAOPSAQgBYRQB6g+DAcbSeBXcHMHtKyt3DYAoL7S9v9sB2SbU+LF3TZCfL0Yut0F080dyuNQhTo0+////8RkYww70A6UtMya+20PagRhguYoogp3BPYGV6qoFrH3QMSBWtGqdlpRB3WCg7SLCC+zSLtRXPrx1IJCVhAGMzrqK6oaxL12Ud61V3mWqU0z7TC10VNH74IYDhdOh4tTGEyZBjulpUyNYGIX9Q/33eUnX+hMH1dEiPbFLNLf6jR1UWU+YqJJw6e1IsvmRtGcijHDyeSXG6k5wkCsR12bHU/ST+P2mHwz+YMvH0n5yxTjUnpXucGPuq4j7rUaWv5dZ4ZAAeV/hj5Ez7gIcBt6RaQ0jvGkh34/fnvu+464lkAiQig0b3ijRNVs1UL+jcZ0KhF+ntfNP/fel5fkEUKIISKEEAIGZIQQVhgiO4iWHYxscY3iilEoIlg7FopjIq7JLNhAMZXKt3HTBRbX4itSvt9SjPAD2O0fDsduoSXUx9cwMi9x9hnrhuPucDsd+8483OGMrJ2sOHOVtoxVaShqo7F/Y/02FnC7PYRJ4CEGmgjVsG3GpayMt71mOID/5JqO9RQwfXEppUD5L6X8wGXWZjcJKOfEDu2oZLdLDmBHvzk4sXxhM0XT7vqRcwDYaMPSkqFatJgWynHcw+YE54/nvx9L7w+iJpKxQDI+LmpV0latLAd8FaCrYyPa8a2SW0vvmKW5JCxnoVsrq/PL/1YuGobp4SF+jn87MxeTFMghCAOrgOwqQPKtcCsMoERhyDi2jO83uciEayEkzodfrZXzz3LVK8gIc1VdUSenIqNaP07CsgPqVIe4gzLV6knthXACxHe8+dCEeHJN76am6+fsFAqNqIHObxJV1QhT+nKe8lBK6cucAg8E3LY70l4SIl5aBis6M2L+DsXS7dia1uipcfziUaGengJUxS//8z1Br0BXujIvc3pqchnoELAE2QBJ2v52UPT3bHoURVEYRjt38/eErMgLAYj3N8YIZDKZ7N7uxr8UtNqrKes/6qwEjpORvoK7h21rCMxwwksg6R3YSZfslNcyV0Adoe0c+OYQfu5vQDkueVmNXK0yrKHwgr+3ZZn+N61e9WhpelGrPdCU65BTaQyEGVD8+3f/mfn9p3dQtz3TwtOBRtq71UinqpF0MLTnuVnpABdKB4iCA5HP0h6hDjCyOQQMMbKDBDjH8NLUgLEjB0nkILQzB5HLYWj4739r1T/PdUgYjXVtVQ/sl8QkpESjoZStZv9vrdUzLQFLRS1dyvZ34M19RLwR6qzJcI5541EyMdLr3qWrRAiNFoDKJtOVoH7cGFvv2KqrkHVYZC3eIQ9FBQlohIKH+v1+9S8Hb2KVIZVX40d0583FJCSGSBKLF5luIZISHlqFh/7XXu3cYCsrXMb1u653L1ucAKoCq1U9cQWUQI6ce0WQhf//n36zeTl/T0lomRaGPvV9idAo5HPyt3ZpLXRXSnXBIb8cjXFt+bE0oZAGYT08X53Im5s/D4MB8qR30tk5rghXAIuFqpYl/bvpXLkdpDv4iD/Fmu2S2xrZlnPBBeAbKAAF/248rz03rXabH5Dwmz3EiZOg34b0eW884rXNQj5LCCGIiBUZxJNBRETCsny2ba81E7p25jYOCF1Zfae8MsiuDnVvJE2qhvb01X6q5wz46lGkZmmUufnALt4HHlyYgPVtvwuHCWHiEMeaQlr6E9LnHuSBUciYccVCLEDZITtArRUbaoOkUJXSQ30qM9R25aGOaA51xkCoFsOhTM5GuuhCpEcehyCZAIABhWg4/g0eeOAvex8vAvhAAQCMLwkACPDSD8VEgNYo+v2UvQExRLWXLSVolDE2B2rhHgzUlMFjreHV8tl5uAFIhjbBTB64Fa+64FRLQ6JlxbzJykMQqtG8ZTNYI55w2Mhkl62y0UTijZX2sjwMyWqJLUBG4E05Q1FkrEEjIi6XlWVxxRVhyS8M40hHg8Oy1TiliXrCgoazrJzKHCJuSBJrckwEuOGTxy4mmkwrBkHZJ0eiWXpppA4F1Yj7SiGZMyfJIvETOQRjK52HIgEPaRIPWNMTogRqg9b5JfEdBgv6MH910lpxXqf+dlAMhEFkcNAAVaaJMD/OIio8S90Z24hiKEv0AAFoo/MdKrzxQFqYo8ilRqf4m/pBBY+sYQYD9Z38CxRbjss8zVFsSB2TbqdBDKZi6W2DI8xxW8/f0efLfYVfPviQtEMOpTnEH3cqbRQvlzlErk/vC4YA4hI4f+VL9z/0TYVFkocVtMxNMzYWPWLTA2uuwj9H1YOmAPm7ti9LbLLlr+BjHZiXHboLPUm9TCgod15gkWW6qJCL0VGH/e57NG3IuGz83GOv4gG4jux/z0iz9Vf3PevAIUP/JZy8D4qLJLmxfFd4OEx+7GAbse/S59pum0b2GTiVHZRKEQcheQ4iFFlgR4NVPjvYxKcb1u7UKceGQLt2rWSzZ5JuGD5SFh5kKXz+IaMymK/KXJRJtGVlzp4WbF8yfpAXe/eeGQMzrAXJ4fW6Bjf9yTKy9av6nv+F6qPRuxHMv2NXo7/TgKxfHgAIEOrABQ5gxbeBAbQsOH/fsi/1DBVYe3v1HFmD7ei56/+i8FxjLgNm7DNoX0GW9WWZXAMMPdC1QD3Iu+mIpLrj4C7s4Sg0zVn4hcVKOmbQ9m7hRwpuF7wiafJ3Xgu3bHylh0KOihsMImt6LXEiieexym3gGZebDtYN0DKMUHQlT97jRy5MaMO7WjsDe5WYdlar50UelMjLpzh7ksOcexvum4W2N66FftN7SL8nE7YcqWyV/VhRnXNW85cXxb1NR2O6myVe0wq6Vd6HPbta6+myVv4NpiOipmiz0kB2fuPrXm7QDXSYq4Bl7Y7JXiR+T5NMAWq5pAaxSvXfZjq7ddd5UWj0aVUn2zKYux+VOL1e4eJSw6Kg5Yagfs8b11tldzsSr5U5Knamdo+LV5vhtu6wtkiJUgkMFduYWnX+UtxwtjvJ56FmvUaNwsxnj7sio5aCsadvlV20nUVhqy7LeSN0fmFXF4/VA/f0vYisjwGECk7e8+FvwFVcpFiqM0gJPVw7xWSGoJXfXWCkVajoEs1IcoNQv6jxBRuWkzcXV7ZUZfdHbP1tyirin9cf5U2vTouB4asXf430GiL6pyyR3hiJfpyBERvKwfU2YNnOViLhdHZbeTqD+godxNfrR96H+WndG+UrWBa3O2HUi1xc7YECzrykNM/+DlSfeMX+WWPVGVWp7SwoH00jc5Krx6S+j2Y8R/67YTPvt0yRwkU5McRz47o56Yw8Ti2sfb29SEbVBehbYXW1wrWlabN17Qq38lIXzuLfx5MszIUVj6KdfXgOvaf6F/aWBRKCVvguyQa58J1LNryRO1QfcNxSJ/vvG4ruycUzVLKnlOdOTbeFTyaAvi7xmeUolYfQzdvAfIFg0z5crPwXO3Qnd90zm72pBq8Kp3ETt6UtvypM9EDhy3Dn3fSFv41PWr5xWr2PaqrubNZetsA5VUMa+nR/GhB56rOfk/ZjbdzI6F4q7jINVfkCdZHdtiEYjUfkBRXfskfFuz+QZAfhSVM2Vjw+FXiRMGUvcYTXCuPS+7okObZo7brZTsginV4ASeyUJwo93/yZEluEJaO12DPx5HtoS+dFFICT5cIrz8/6H21/WW3Rj5rl6wmz3P20TA/pO6nYG4Hpzu9fCLN1lmkqlxV0IaRz4dX3Slz+tTsmy5kX6m3FLsXy16k31e2Ls4fDwMr6A6HODKqyUK1nYOc+XMUkrO/tu/kAmPJ1g8dWpRqU0L+D+5BaDfpXeKcvbp8TJHP6cfyXGTe/ISOIDdYYxEMISbihkHuHQZOxQZ7wkN/cFvkLwEfBx+yFCScUKcZG8VxsMf2j15QCawcdol1mI19+W4DKQDGmvRYKYWSJGCbWinfABrBRhq2NHVq6fHZKHeOh46PzM20O0S23ka19vB8c9gnMDosg+xBhoigOH7dN7ptHCvyCZ96dT75NyC9liH8BA3WBa5DdXEUiWCzzOFko0Mlmllno5fx/rnxCBQrxYIUSk6y0loTBOvaMNrKBCpXEqnyHDdW2QrDNQRjq1HFzyBEYjjoOwQknCZxymtQZ5wic5wL1Gj9t0sxRCxME7S4h0OUGDDfdQuA2gR6/7X/3Jzvo5VcI+vyFgX5PceCZF7jw0mvOBr3hZAj+AS6M1Hp9DwisYPgAgjGExkeiYkSQowQllhCBFtTYgjeuICexyVxMQRrDlSsyMty4lQfmSZE3XrzKF9PwM5T/kyZRCci2IEGJWikDDU2FyQKEP2yKSFNzFyVqYZppr0SzSyWec160XJNJwWxLNR9p5is9RgZs6djFLxvxXHpMZLbZlpMduchVQIxCVOagUYzOXIwxD2tp2GseFstElpi/pUa1zFwsz2FbIXrUKpmfNRbKYOHWWbD1FqLUwpTdFaRKfnSHavBzE/PuLC5n23UL8etzz0a/B0uznwpMrSgN3qktO+yWJ+AQ1Ik8NveePo2frpQuzZ4ubR7M+dCc0xSeG5G5lmXYTTlHk87aKLIc0/gmU3BiG7LLX4d803dx2j/w5e0J29XBOF3AqzkRzxS8mNIleGOtSQPF9bUb4MAmsjOBABfB58Edf01MfJhvfJOsFyhMDO+DYEyfhmls5myWh3gQSElFSUW5rhqhw/kP57+dv8Jat0en+WYXKYivSEEiOupu3SigzlUB7IXSCKUhSnvFnog9Udq3OfsQjTGzT78Gb4bz5JeeHwVnXGuTrEcN8OFih5va0/P0QhTJxxLdZrP3i7lEfrc8RnrdnkehPkpLZLwPqt7vrS9KjUC/Jm8LmRvUPM5ax/5Cfnp6JUJ9PqQXl6D+9dqCsEimdsPFGJjiB+FRiOkoZeMR/gOAnZjw13ts6nf+F/oRGkp+vjgViqXQUMwSpuH7+tUyp/PFiz+/H1wsu8LADWf6nH/WPqIPbfP2KXfhGfOsOCc7vNSyf882xr6BMz/66ZFDj4DENfSoCfqMN9yqEEqLfGOQfPX5/KNxqfeqodNfyMmLKKU4+Df4+kNeVPhg0yzd/uiTw8CCR1l7wBOzGVlcMKu5/ZT+/eAAYuoyTUxnlrAKVBbZl33ZHDvaWbG6jjTPiUwtcrGLlfnZZZ+47Tcb9fpLVffd91nPvPZ5Q96rBgg8JYUIHCCLGKiliHhwmLqJHbGZc0ft4dcJhgI61Z9wtj68c2psWvX3nHDNHSi08Qu9x3/ous2a4OFrtwLq6DRu7jHhJ97VXe1/ji2my51j9pTQS/s1QWm/lRbu9z4x/0jMGD2oXUcP69VbH/WPe4Y/6ZadmnpuvccGcGKcSnRJ+JKlSCXoIdouDMVlE2HbJdlu2VoUSdT+Y7w2zFcaaM/lhZfDV4pVBdobb73zPj7+U0bafY1KVSuztxQfKp+P3RidhLI23QG1Ky9h1qi8JQvW754JIuJhMoU48RIk0koyXbIZZvpIilRp0mXIlBWzvhEbp05jc4W2QtOtQpUkJSUI0mTIQpIjT4EiJcpUBAl+TIp1IMj6iQ21Ebv8Q5cDR06cucBw5cadB09evPnwhYWDR8ygecFFbWjoGJhY2A4JcRhHqDDhU8SsSERlG6p2Xbr16NNvIAdTzVCeIXTWOeddMOaicVddc8Oim/ls1nMvvPfBR5989sXX+NZJCoeo29ExNkUhKTmjQLEMz5MVyYY8xBVSoUP4jRhMWRARIkVVwrYSTRK+ZClS1wWMt4p/SUpJAUGaDFlIcuQpUKREmUoGzQrOiIFIUaLF4OKJzbh58Zkw44GHHnnsiaeu8nooLdJnkgcZrlhVzGYXXvaoJnwtWtr1suk430cEEid+ShhJdEn4kqVIDcH15O0X6x2KKRwiN4eUxQjZof39uJSjRk7VrKG4iwudfg5Tz2kv96u7WzFXspx1bfW+Dp9BaXuK4PZFPo8NvImIaW5rO5yLUAZXaQtiPbiNLW4uKqM3IgYXT2w+G3nuhfc++OiTz774Gt/+oS0wQ4uzsj4Un02wnRwTlROcb/ei4aQdlrWToKEIqiIRJVoMLl7EHs4wHUlO4TyglBULPlZipVVWWxNrD+V/cigv6q1KORiSAoI0GbKQ5MhToEiJMpVZVUFzgjNiKlJUJsxJlIQvWYrUEMxkSLMKm1dZ9hVsiMroiRhcvPXYXgMAAABAI59NPffCS6+89sZb733w0SefffE1vnUyhFkxHYz1g5n1TPeElpEiJFKU6CzFlSlXoVKVakfVOBYdA3SSdRtBYaGxcXAxbPDY4rMbBl1UNSaSKUu2HEfkypOvQKGixiHSUK5CpSrVjqpxTK069Roc16Q5OwL45Fv+GJk0ZdqMWXPmXXLZFQuu562JJcsrv/6Tv/+QlPvRbsc2FFIt7jxkoknB43j9iTgDPnQRO9KxNCfOh1zAcE1vmG8fx3RRToaFiVymLNlyHJErL/IHZNoJzi4dTeTE+QxbuxDViSbOE0dEcNHF9YvDcf1y0PMhJ9rBHSQJKYcgTYYsJDnyFChSokyF6UOdgNARIpQW6TsZzvtZjY5RIkqVlC6X4JvDhsQ+Prpkc06UXsL23BzlDMI5w+KW2Ky97ZkmIyczdmZphbIpr1a4RPlFEVUBIAtGRcdcZ91PmmeGPYlkypItxxG58uRnaYSVKVehUpVqR9U4piPnd7JLLrvjbtzbIzEmr5Nsu/fL9zmIVK2ar7Fsx2z2rLMOeEbluXvhP++898FHn3z2xdf49gjDcTFR088R8bHClzB2qK0pup2tpiTrbkyjNhN7qkV0PKmzVZ7Q2y67gU3sRFG8ENXQpftkzVaTokQ1GYwh4gtIvgXG0nnS8ChuGuDhLVb2ZJPO74oKVIHKBlI0Z5qw8rDR6XQn0SWkoTPZYnssHkANkJxvHGdbVHV7dH4+xd0UZo4H5mTgjI3MarmUnrGGfrhrMgbj1EuvyKQ2iDHKFGWyWdCu1FYhX6emJs0jDlRlvdiUpQUwueGUMCtDTkjsAIRj9/RKKTp7hLCL5Xt+9XCFpvtTD/DQIytWrXnsiaf5auQ/78aZ5n/fraAfVBiS+Mw2I8O5e4aoWgZY7Jwt0drVxmzYA7GHK7ziH9hd72xyloQ5Z2bjiEfa/YRLWWomp6oi4UtkQ0aoWJItcwwji6fXLR1Y5wQKa+awcYqIB6zTEeyYKCOyg80SYHblqgpVRVJs3rvmLzW2ceh49uzZs2fMGp8xSdJzYovCnY9BNaCBbkmrER6+Z1qwopBBUoXUpkbVggCorimG7qnglHY33D8CAAbS9PzbdlF5Rz2guFfjtYABGF8mACDAQP5PDs+/fV8ynHSZIs7c94XxwPABRngUrPhgRGQ4LPpwDI0ByZ+MZIRB/Kdjw2Mg6rM/MdB88SdXx/J4CHGCDEI+ZQs0cIABHvDfEd8p5siJhNTPbRM//58COXcKnhKe1Z0ikBfs3+ZmdfuV67TrqOu3rhWuWS4kxIelb91yWiU9X918J3Fcblx+5jLvkrDL3ObtUX7MO2K3k5mdHnF4eW5pryY1Ml4Yet4ky6BHHpPHzxbxkR0SsCc0gYgDsWTuPHiGURHEA+gcp5i3pAKvkC3DuhBEIRaiERtxEBcxyAbxwpXCXOXE2SKx4zzPlKgrnMrCzXGY5yOJ4+TOw2QKnrw8XxsnCRdSrmTc6IUEv/nsk+SjTxEsRCiNJBSBgt4S2dEYo3z9blmy7LY77rrnvgceemTFKtvl3kzu5ug4xjbYtw3tJA+l2l+c1IIqtbgy8szvSc6qO90hFgDmaAmXJMFucIuqVGdgaoH+1/IekgH6Ny32d9/1Q8ubYf1cj2VVrF4LF6ybkhef6jVnYGxo1scWGcgfFBDUuxyFJAqJkEwUHsQHRQGSS/YQ5EgmE+VnwowknTCv0ikpeEUPprrNBGkhFXIoQHqv4YEGgZvTvgikgxSK7QI1As0b7PDOAhZgoDJJfdH3tyCQL/EZB0pkkm/sg78EFlCwwGam3/BWsoCcw1nnwn7GYqFDaUImf773ljcEC0hXiDZEcAIJxAc5nHqHdy+/97KAj6c6cpnC8EMVlu2dMYYCVd6xVBKejRiKYfcqTYXtLitDY/IAY7tmjOPh0guM7STvfyNzDRwqbMd65fT4MSpse8ko1kDBcfM0E5jUuUfVBIQiPES4p1cAEuuNbXsQr8jEwF0fFcSCG6d9NOcwmQBEzgu2a4ukh3BeYDE2j5kYtBElaSmce93ianoHS4rQWDhPnOJiCoJSgCcK57KraG4VI0HyGuGcWcXJfBS0a2QCUoCM0W12B8uIauQud5ziYJ4NSliNxNLlEntzexBV8xyNanSO9uWBMyN6FrE1lwTLtMXHbqtexllndVrU+A13dBXPmJqIK9X4utk1R1QeNm5YxVPL+YAUNzi+cN5yrbQ6KwBGNhVuPLPhOAYURs8KxxJx24cPufIcKFFg4H2sYFR+e/2pU9FYzm2y05QO2suv48xoOgED0xkUzM6KEdP3uvTW6pbHmSJAihBFirodWGYK7EubXrcbFao1MJWrUjlppwJOTGqnKI2ithSBbw306BRAYAscwUbgjeQQQblSHB9hITMgTbyFNf0i6ruASowyLesMJD6YOuRvqWnJEdUtWUgZkC8u6C307kikSbMsZ3nUPcwyLLzsqDBLNaKEohuxNrSynoQsTInGHv1kKr6mtb1eLnT3iFMXtSL8oPxCnXzIGhyroW346lgiC1JSqMVSjKhepLnLj1Jmisc2iT9WpHJNyoTTKR/DgVJVQ+BT9yh7YFQuqw8MMJSEW2Bgy1TS2EmzYX1O2HYHjHpi0Mv2j7z3tweFRrY0iPywWCgXeSBJ4bDmOYVAUVkxGdSqwz625auGmqyF4YAzYpJE7qgLjzA4M1SbrtYsVLYabdT8lVHlA0XiQbYU8cIvkXgIPHT3w+XvRpYl3BMeLkeobp3CzVtD3PMHC2FnO9zuvm1zjawFCrgHTxRVSMoUMLwTKFjBSzvm4t0WgzjBZeh8ok7Ugc5ajQr1B54i3k+wRYJfF1KsK9bZdGPE4pUsx4Tx6i/SdiXiQY7qATphYWx8bJpUeSVPkjiBSPyOHPwqeN+jxuJ67sIcrv4byeIIp8ynLUWQaTO3q5SqIEpQ0eF3Hrzmq7xGpbKoup0ndfSfzEijThYfAYbIggIBh6z5NMkcvOSYoBMGcbwhOASV58lkOTlBgwqCxCERai6lzFyeW3dTnNW1J7ru9p3fK9/9/8rvOcQBNl9/zpMe+fwv+9iHn+9Zn/apn9eTPtFjbID5zy3f5A1c+cKrv71bvZlrXP5GbvnKN3WD13XBfbjK63GdruDSXOshJ3+iBx90LAec1kEHHuXQhzj5w5/YQQce/Qk63kd2xIfHxZyRrW56lXUus9QOFm9urQUbW++qS294PWteYlWrWMkKl8Mem9YUJz6+Ecc22ulMeVKjDTuhKY44iaHGMca5G9+Rj+Pw2RQ92vXOdrjdzbWpR93oQjstNdn+zjbbuH1tbW2r26ulLWqGBtZ/qlzJCpRcsPTVq2plyii+IlUuuVIVLFeBeihleZRTCYqmrCbOO2psZIuBW0aGVkybcN68Y0aG1jvI3pZZbB6FyYiqSkuRU4woDYSVkyWgmLxSRSssj8wipJa35HKSUAxZhOf8SZEkCm4QNvSDBkoZgCSKMo2RAxD5vF/Px7mfc/sG3BXN9ZxctA9AwlQjFAAAEBERCSGEEMYYY4xSSqnrzV/YRd0zDYFi6SYOAECSpIiIiJmZmaqqpo3ELwoLAAAAAAAAAAAAAAAAIEmSJEmSJEmSJEmSJEliBQAAAAAAAAAAAAAAAIAkSZIkSZIkSZIkSZIkkSRJkiRJkiRJkiRJkjz8yl78ZBh4ETwcVH482LP0crucjs1K8lGMLKCFUgYgCUUyGkbxNDOBvXxua/MIw8YVQozl/s/XeZ6IGw9Axg0rAAAASZLk4Y+ryHzKYUHRIsQrJiQovYLkLZl4BONB0jhhoBiAyWEB8KISxgOBCgUShHDQWLYyneEUE+ZvtnI/fEqyjDqRXHxC4VHqZAnjhuOXBg4SfrKwYHxY0aJGighA/8lkBlJOmPrstdFHSrr8Y2rGkkoYmrRCyBMFg7AAaIGAKNAQ5OGJgYDoCcIbGWJ4GI+TU5WmcGJQBrAcCxDjFYbOnxdH1kalkEkEYKbAymhVf4EjP98CR1ZospwyMimCuAA8oMQDJwTQuHhEXhSGWAAtCKSgEaKwUWBh2BjlXDJgB+zbSDWtOBnTpFPNOQobSTzuvOffH9TdeupuTV3qcWWFkGLZ9273/T2NBcU9cWP6MvpjL4aa5YEYe7Hep7GgeOGZGZ0AAECSJJIkyZa2mfl93KpvlG/DHhsPt5NdVUQyZcmW44hcefIVK1GkQGEY+Z5S3snFoUNMjZ5Kr+yViFaqTLkKlapUO6rGMQ0a1atVF8ZyosvgG0dsAhZ4xfyOiDyCNvAjo24wUUB1OdgTOkw/hb5ZZ1srETZWGyzyrrBslO/xE3WR2xBT5BdfE1FoR9hZpcRNEBRPaq62nckjjmeE02wutlwgK7ZO+LvmatPyP9B2w281Vxv2boplDfxsc7WupTpKBvzL5mpNvAShhi9prla1z4CJmllaVsCwQh/7XzD0SmdMxdakqDbK51iHRcDiXFSlTBDPs244xGV/b+PBQSOGjISBtTm4RCxHGCxLMpWOA8P6uULL4eqKEsWyJInkC3354SMF8gQQkAXgAqJpUBk0UG4NOqMWWZoGk0WLtFuDzaqL2W4tuKxa5KRpMciqi7lpujjMqoHJqiHKWQs2WXVxnFXXiPA1OW4JBaUCJk4/VbJf+M4ZHvOUdaUa32wXFrbRLQxMEcDwDW8LEoEYqwPaFjR5hv1+9ugIbNYqVrx8JdZJqYVrrihq2HGb3np2l1tgmuwVfzcae0sC/gDGOU3ZkMdzWebcMvbPQ6PxIv6Ilik/flbEhso7eOKSC8ote/duh1HZ7N8LMmFDEOU7f7t/5Iv+J3d4J3d6a7U7wV/C4UPsHHyMenctlJPvzBYRdywPr8O89cqbxZT5nDdePDwGDz321IonHtSrPHnX5d6iZTmW+k67WRYzLdfOx6+Ubcq8y2ZcMmn2TrF5ITwvhhivxyjPWc2zTjdPOWHkKxnYA7qgBVtgIyhDJ2/25qJPV3R0W+kuJPrbMSYtdask0fz2WWgqVoNa9Y6qU11qUqicP0u5XZekjcK3z0JREvlyHZEjW1YtEkT642k8BPhSJUuRVBKzeyi+PcWwfmutaa72sZK/eebJk2WmeFFpUlcm5wfkguSWm2OZeYpPliBdjFg60+FcC9d+vMjFGDvTosUs60IZM/+q87LKHCtmLwaW7FPmc1srvpd8Hi1csEzIVbIMWuniJZk5craUuNh+lLvULpEWHe2MEu5ImtP4M4ZTbB1NOdVqRgpvhgkVssbJfRWSKu88kuaYMBV3BuRPzU8gH8rwLT8y8qqndAOFya9xJdb1WJRcc+FmEhkJp1YqSJ/rvCKeP0PEVNtXNfmcT7ErEIWLh8UGQWP+07MhgWG2BAlzyDGPPPMuOE0RRRUnkY5ergJFVljJwKiiqr6pum3taFeHOtqJTtZSW+111qXbTT1+16ffMy8NGjJyJ7cVXYTKnqGxJu/vVuPIkEKdVyxg8xedekagd6bGTC4snLqzRykNJmPNDlRJtwgM5Is21LyMT80rp48F5g8fewPLh3P6lXlqHlgT/LwR6kFwGbhue8wuXHSTY2ayn3/89LD0ce1BLwLmcAB740H5W2Djjg4+Y3dfsTyuAnDzRrY8rhoiikIguIkB//+CAO2YPsAANIPEWwTQQ6Zw3adyvGgsoMBfmHLjERCZ2ZHdeSf7CyIU4RL3MuURLNtkh+w+mZNMKpPLFLJAWbgsfi9vb7eb3G2rW41cODZu4LE3VeHVMZaxM493BTIRznMuV3XN1967G1/OH+629+/P5zqfwa8f2OyojYlr8Hs/nouQ3diVxzs88E//LcHHkHjgkhegt1rbNuk1ceB17WFj9pOGqbwb6zx1kZ+LPphF/DgykmAPLVc4BHhbyMMNbrjr/CD9WnRmfRSa/LlaiK2/qnY36nTF5tdy0+058mWS8eMm17jNjRfyAeNifgPeRPDFYuxzwgeSWHH6EnPIyylukbC6NbUFyvlD538AAQ7YwgSTOHEm4UfJn088Mo1WkukSxIdeojmKzTXPeu+h1+c2+9TXtvjKN2rssdc+u51x1jmnWOGi/7jiF5f9HLN1e+ChR+4ahg/wN2S5EU8iItrDFBejI8IiPGIgQON/3QkAgIYBAHkC0G7g8AHg8XbAMwKOEQDAHdWE5G3s6SMqf3qh0tK0lH5Mg0srrCRNnOU3UL4sQWz2Ka/kE2CStfw+JARIikC2qFKycULZOxC0KR3SWSGruHiVpZJFjDnqXrBOmkA0SCxbBKhg2ijs2Jopmx5I1ASwBAFHjldWWEiKmbVFWlm/H5qpr0plaaA02SKTUmkTiZ6iRIrjylU6b2ZJfJJNEJMcft1ilk5SQaivD4lW1mDfLYWQoZh9TY40HCmM7i+1zgD9nUrk2BdRMklQOtTVmlZsNtekcCf9JTv+jY2p1D8tuv8Mvr7m8MbSguj6THZRh5eFgS299fj5jbZc4OA4jkPMuFQ3CBvusQ1zBdwp7G7z8vyQEZCK+QvT4Skx02ya8BX6199cdUysuwm1Uog9ZPan892BZ8KcCUPB2oxRd+PYRU9O86IApx5/adc/Xki7/Bnv8ba3m+BtwH4eDWGOFo2Uiat5tq7hVSd30gISNtUFeFGGWES508qYsXqvjtBIAAbWecVzB+imsagh8E+Gffu8DME48sr2RDf73LGlzt3uTGWo32XpJilJ62P63mUpH2zRzSwg2kHnKeCBDIykxqXV2RlkASv7N3szNbuzhtSQPEmKaQCUKrrT9spVNs5sLZ7xWQHkE/Ooy3CTF7W7SorGJlqXVQRr+a9md1c6j3NDnabMYeVuvRLnCJZ3GEWe7AhDoErQcVN22Bv1JpCnBBtIsL+TCTt146iu8aHj1JNERorqp5A32061KQ0BqfNUBRKtI98P9G2wI2ZdCxMBV5iy3CVq3T5Yy9ewO8hlFSd5pGYLEiHpVdXVE0fWuTlMELtpS5qb01ToaVXvUHEYeZ0p8svEwQziCQ2Th5BTp1ZqEs5DqPrVx5CZkR/GZVhlQpxdkrei7Sipps610rZASIimMvBKh+n6U7vBVHcCxyLc8oKmhTbKYqFXiuiwVHOCr10loNpHTtLrz3J0JZjtiesNRZLZqUBM85zuOJzv/aJLWbo0iKvvEG+RYPLXYdgcHB8qszE50fLhAIUkw+K17QRYFm2bcNh3oVirU+kkophI1eV4hN6B6/kmFVG0qqeVhQn0ZyVRGw90tTWmM4od+3IsLPoJqXbxI4MwuxMw+odW2wbz/U/rmnHE1ccs5uVDKYwsbFSGg6JPj9xaXyba0kGQsfn+m5O6K+e2ndLFB2NDWhJmGAwavZzP1ULuNiYhWQkVDGaNIdXzEzHbNMykSKs5OR89QxZfY/nCsqxEl1IHdvo21A/NPWU7Yq1lugoD0MEnKOD4WvMEDTpSCAqrkFJRFINHlHSRZ9NI7l05W67e2GknswvDjOslht5f10bFTcbzFBHUjoo3GQ6fvtrahIXhmfahZwrTBXBFjEDnFbnyC3tZFrlVvR5JQgOSsJJEYEY/fCxS3c0gY+S06l/tg9fRzQVTRrgJSUUnIo7CYcZDaBcfaqpTZxHfF6kQltxcZmeHhTRfYGGulgvUfhZGpWec+r23MFmrubq/7rwpe8yyzgheeS17Pq11gU3YBHa+f9Hu6irOKS3rqgi0dgAxYX8QEjQ3C8oq7Fcidf+neQTt/ATrvOlV4lRGFXfqHYwdNejAsW5Pw8FLTLuyN3Ul4Px7VPWQr/jxJjEl7POSyKcu6qbof0Nvt3p2exC5EMOfEf5fEqzDGfpHUxuFIOvuCtVYzrR8uBeNn2b7lSCHMesMx+RS2hvSEhJTFe0HG+WsuwPy2xJaKMt645ZMYdx0T9K1wptz9ET70NypNjtGVafl9oZY5dtSqVQuPfrJ30KpXnapBW9LCAs7wNWFxBzbtEWAjXvZzuBKwqKgFL0l9gRF8K9UikUowwCiFhXGNlGGEgCWKCfo7DrnF4JzK/bM6MhXoe4wMFZ5U6VNpqL57T0trpWT72a5Gf+glR9/clMXy37x4Aa/+3Mxe/jCkvB/OHY4OSSsWuAXE1MjQ5VKAulw/AR6F9l8t02hfPYkF0j/nbJ+b+yhrLa196Ik8+/nFC1Bzgi4pjQgCb5z7XdDVrAbExkcMNkTCXAeBegCddDLF152H1IsCRm5/nQ5irsjYmHLLpHEbHAnSLpHfV1u/Z83kZx+NR947JR0sp6M+owy3Le3pFdzE/JXX9E+mvr5plpN1dRcjX9AE+dakVBjB+tH6Ns34jN3L7lKcXYrsFDsabcOeMDCBZ46SzKL7TSdWAs+ArsZN1cmnNuFVL/tjS3FIPhCdzc6arMqeW8cWcigNW+yxjRH/Jeyz+80jgxj70aF4in1mlecnm3/0ARaAF8W6blKrmfHjWmAKmHdhJbcrObEV+nKsLk3C0arxTTq0+yp+wJW4gn+pJcOVQXItpfwqHLa1qfOJoiz1DlMsKbkjGOhtLMHpnFSnUL4p8qqyZQ+RPNuzxog1MWNRgSh3U0zdc9r3O6lnmN0mlycp2dD3b+IT8+i8wFqRkfVRvFwil1LMBuooWHM0vl0le16V4ldZTTQZLLsWFCX4Y2gzXXJ+7yZvq2rAktd+i2cWbqK2eqIcxghOZOlHoz0nGo6MBz8SS95i8XMGQOYT/pyX8KzV9A20+pFbrOq5rdrdFys8ogFlJJHYR6Z2+00bj6RHJhG8DUloCLMNF6vCr5aj6UUxpR6K3o7DMjlRZfPPv9/Iu4o8OSKlTDTvpBahXHM0ZSunH9BQ9zPYZ5zngK/XwreZ02M1Ae2N7f0uWdSV6f8QjfAZ39bVUtRLmN1dUQiJpUaMq9EQKraaL9VBmhvdQ22/HTuicrHrOO0a900rm9nuPlvMiPr3/cQwRi1aJH2JFxJg16+joZdfy5qLvOHqFXK05omE0G7Rxx4LDlpsWakv9Wvck0EY8sYqldvDq+0+mmYubGewix4k3eY/Up2BMx9zsHZjKFJ/javEdkFRnUJUpLUuE6D4cPByB4o69+zBtrq5aCTQC+FY0O4iKOmgzuuGawdSiRblifrIr7piqoKyQQqiB4oj5R0OYRfbVavzvQ47Y3r0n8zdUmNzBhTM/glKrem/SYR8ZmZMKw/benzOGCpazRzk7hdjbUDmPPX4+ixjipyCfMlxa+R/ISmnrWLlls5Svbe1xUwaYxfrQqwzVcl8ojvQfj77/OeF89F79+Zrjc7g3DJQy/xIHV79Gz1c/L5inJ4LWfjaqFJQQVJ7pQnBe4f6ZUbBYxXOqnekR7uJXDRAwf3MLY+vQ8QaoAQpe6zn1WQfjUA4t2qZjzmM78229sN1LCfEv0f5lN1yEmGqn5igarBZGecyLtHw+mxqZl0q/jd+kaLFYeZC2AUwQfb1RnRk6/QMHJaVqFX36YnuUEH52vdRgGUrgBEXqDfjnxtrPitDbfz92rA/F59yNcxp6hq46wsDSxrvplUdF96x0R6+MSEeftGhPl4RETK7rOPGVZ7KTOlv4eP9ck64o3D53hbhg0oZ6jGYm8vS0sv70aU1z4ATr3/9gGHChYX9yRbJBvOWeDGAOiakr3TNcb/eyMNYB6QoPpQN7f0XXVKcP/xcIb6xjDp2QTBvdqGo7/MSl7PmRXND9YkkQNKW/DcowqR1KPO/umk+Naj4nhIMvOMUyETCgWMJpOgNonWEvTz16VoaGqlNBoJg/3zVANiJTaW5P599H132Enltu+flt3cvyy1fVfs+if46Wi5PAhPABImjU98fj1ni35z6eyXJLTx0vbaIsvXr4vMNWquWYNQ1u5LZVWFGK39mHqjABzgAhLWi+yfXHjCyWFwaE7VkoSFT+mePTgLHBvorBgNHz9hAvnYPkqLREsp+tmLEjup1u7aJ/H8+xU4xT06tl/ZjwTZC3+2dv75b8nx//zM36qEwrnOf+hPRsq+q1XCPCCByxhh8AAJPPYIG3bexp8Pn0cralWjj4atPkSBdCNMtWzTr54a1hS2/T4XDVjn+BRbbADfDV0GoXhuS89m40/npowzqow/Lz6vuz9iTaG4dgSQmcuyAMV2mNaVvqwBbLqRzARpwYadrER52i15A0inMyGWoC5u1gTuOpDmEnaHPaydeOtBmgcCBLh/XWr/rqTU/uPrkluGvifz3F4Wo/+W29o4tvkvDwf58D6Zm12SxFfcycBhPum29TBf9vFDcvoxUmz48HbO3untvF1VkYae58NdtADp0pXm/xvzbF6/yjtAebPYfgILr9B9YpOJqRZjh963v40v5fYF49vCw/Et/ZQ8PMjMgzW232da4ps2/EjI83/oeY9/00NR9N8s1p2catVyqH2z0/QDcXjgyxcTavp8PisNPtXtGGqs37GzEbBmV5QqF0paeC1OxHjwQKMCWWj+7v8uGHK3LJE78xhTmcMnVUnVX98FlU1ulb0ULsvhFpx24iWewBxKByJ4k0PEzuFbXxz4Fb0LeX9kUiWzcvkupvKMvGQ3yMrMWbC1wCIRZOaiAIaDQH/ggjTq/oJn7OkfPyF6xfN+rORPwlZh1MyVqIKChajIGSFsnwVtP49N2s4e1Xv1YX6vBsD6XfpQpL5pdYNGy2qoxsja+hBcK5qnOGJzS53q5pE60ELC+FvVybdtejzQ3wi9My9UZ1506/NA7zMAeQHNO3C5G+HiNe+rQPyK+XXsk+w/z+ZJP+Lndi1rWhZBY+D+qWXF2g4L4GqWvgjJulKVHtzRwrpmGqmQpdSm5mFkKhOdyU/NrOFu8fI11Ms7eVYu6Hjkvf0jcRGXjiIoi4p2cRGD9pvlwhv8/IoII0o+6ox1NCVTH3mBsau/M7OEBbMviFvf2PuNxPoLRqWnZ2n1/pSKwEDK0XoyjVZHJh8NDCRX1PlTO1yD6Lb2QSwMYIKZ9rbBDIiiaj52Xtg/AowAYvuWzosFv0gT5yJ2zUcufebDIWJTbWBIZBuH0sO+lUU738eM8xLuoRDV0dh/dmQOTSst87xOQ7KOXM27kOwrVenb0C3sa/sjFLKVWtU9jPazNlt07D+e8kEtjsUaOQfDw7cTEFKfN+8idGe8coV5QALnj8pJVmoPKXtQc7idCr+P0bafGhH1EEOSZzZ9hL8V+EeNydyE40LsSnGR74PjKYm844nYe2Am1HyGmetnvnw1xMbMrp7Ryun6X6GFtDGitjwjsi2O8uBYHXmlNSHaJ9WawFXBkhSbWn5sz4dPTiPbT7XQfkM7dcfwQHYPiZV6UuVPKCCB+VHt5OHkHqKmPvd4Mu5RRQX2XmNibOLxFN8HRcXYlSYhmGtpPvcaG6J/eDvMdpq9X/iLNH4uctd85OvPxSLctRvSRd6CPYHge7oOTm8Km9qnHSdhpn08WTuDRr6GsjkAXXJMeOUOKzOoZPtuF3W2k/JuFpZKAplEMKNTJ9RDOvq0OE5eFJx/ISq8Zq68c+f6k5zYXm/RgGZru8fP3+0UyUykl3QotW3jn/kgs3nqjISTQHGiVO0wEne9rAR7pzFhyu/mFWBvNPFAx0Ek4gAS6NLrzdLWKvsb32amS5y+wak5Vt9dRK3E4o/BaZABDmxLwfmuHz/GF7spP2JSDNbXU+9579P2r4/4DCm0Dvo25t+asvz2cOdGVSO9lSilkAAmrTZJwWUvMSnGFwtVRD+co0utwjBKL6St9ZO7rpQiIIH8GyV9Ov3pz+4Np0EHA2WVpkedJL3eMONBeU3tUuXuNFUTwcfqtpsKNhKyoVeLqkQRGaVN6ecZD+MLC7heAi/3wuBWeWijkkyFL6q6G95k0yCclF1r6nvyg0ux2GMmnLzqOjXM+O+/YZbVVzNgIcbwD7WTmrN8HucX+Dxpzk5KEWfTQEF+eoyLs4b3SUH6oSwHLQwc5jv6mZ7g6z39Cu5wzLegF74dZirUsy/JL7im4JQtINHMP5tW8TlSUUMsOm1xH0SbqKy7lYgWpkPtz7xTgt6z6LUiVbX8t0mCQfVf0eVikaYbQuR5iK64j1GLD6igZwNRxHHded2RyDXDR1fTwBPsmTjeFmmLO/tuXgIxFLfe1+OPbSG+0VqkaqsfOnY4Ja32sJc9k3BYTdr8/t7Fu9AGBbXXNGJGlc2fwjxIv+xr+bUna/acRcrJjwNi8dPcf9WmlN9sgqXexl+aOef+Gi9SC1w8hQQQnWtpatWPwcb72InAg98kLs7rOy4C6QtwoBI0uBp3Ijkg3eS6x8N1616dI4+tt8xx1D0ksqXukFIvQBFgbmQlcUAGgtep7he+ae6pepaVJjl6g1NT2tCV7lPhSa2BUyaA3M9JCqHUtRAjI1r9KXXATgoFGaA+VFRzprjxCZPc/RzFdUBjg445FOuYQ7raxlhVtV2x8M1ZF6JVn1gqr3O0DF/naKKiKjaJ2WoOiesRypvWI5RBUxfMzFHmgoW/S1LM+nb6wsW/M+DO1i1ZzQu32UuNLxHkpuWnidVZ0hKq7cpRVTPNSdONO22QWNB7mTJkd8lTOl4zUPQqJFv8P2hC6zPjjFWlsT2nvhnuvKbE2wOK+sAFJHDlpxM2vHU53rGpt7djo0vj2w36G9LavbH5ZAq2pB2btgGwFkWW2uP6A5baE1tn6cs2p/vc71xrcFE/M8yqs+YF4TZaZd9V0by/7H/w6lX7I99Q1NEJ5X/7OfYTizviW3mEy5l8z2VxVhq/Ocnnekaa942mZFBoB45p3PW4qxyOUnaiuJHKrHOM69cc7qTCXxifoG0fHY6ps2cwBsVm6+2gBHu/lZ+SUi9wvQ8FkO+6WpeemtySgl8B0+MADIhBHjb4RYrEbYE44v4sRM5/PcRyfFNofc2RtWVzeCq+U/V9ewFsmYVt5Xske3aJ7/47rLuNqSvaNXxXwc48ytwYrbN6edXjYv7RCdhUIKHBQv2DTdWHDYYb7vhJSgVIi+hj/IOyTJn9xHUJahKPD8vMt2/cmT9Q/Z4sbvZYViojbZMhYXip5hi3VAePPAh8akW9iX0PXjcxaXXs5SivZcbi+bx/v6x3KTP0r3hcK7T5/FZ48PHRCv+yvXFOTQX/cihqgTWQ++PREsb10XLuL2hczwRUv963oh9n73qD19kl6revX2nfzi57+Zy9S/3+1XLsYVL0Z5b7qXbBhQdJEA6f53meagfbBAAOcEGmSvGhMf6XM5xQnB5lsbMbHCoINGLuUXc6qwqLrTpMmxjYYVl3acHiaLdCN5f44L5S9wUqWznZHKx8tt32Krsoy+pOQGAZSS0OhyI6PIKPQABQaAWj3ukjmiOhja7kLPAHPy9hoQs1qMGBlixJYEl1nUfYls5c2VfdIlEL3ZdftuxUXd7+TBIudI8rZx2FYr6eOSHwq7hyV1mD6jnjQ/wlqSqQbg0CJEDoyrbZA5WjstIdIXIpU/V54R0M2gBEA5cx1MOOJsOAk6WXucywltg8GqWpaGl/1T/59M7eNuOpS6et3YYBhd5WCurMR08ykmGzbOSx69v0K0YvGlSdlNkkDt8a250vuvUkGuyVjYjHUiYdI4Y1u9r2wEWYO4V2P/lwT3jXYcYQREI4daDjULhv3sFDYahC8AEObagrFCTM484qfzInGsFBc/YEWK5se+RfMY6AFhBGL48Xx29QrtMZ/wUtUDfwzaxwZsq0cPBbfevkrxod5fgNY8Uxy2mtE4jsigfbuR1egUUQCDR6ZSchPKKLQK8EGgQGFnZ6yzq0BBW747LBH4i+ohJMMK0U4yMCIvhjs0o9wOL2tlJQYz5ay+BrgGxU/fXtehWnxg2qTspu7AjfmthdKLr1NNqVszmpkw4Tad0NY7OjNu6jD/eGdYfQByMgTAntv8VCIlAF4HWYPtAZCsYrmjf2VjVJNvOZ5waPx3pzvnrvx3K97CNiaXZ0a3OahYPbkYQyR6z1RnaO8eNS/0PiuZC7wpLMJ+8zmpqeC1IWU0qKnggodftYrsRKM1/fjHIvZsQtet/JQ1BnMU7QzJ50R0UNRIXStMig5w+Sm1rtJaVbFTXUyEIBhSQUkAPSBaSD1gw6CnjSGXXTvjEyN4VkUo0FXGPuOMBgfAxsCNgCw/a3+On+5lNUkkWUs7crN9nW0yXVGpuECGQizvX+1RL0XdDJbPraEYMZyswjm/sYs0ONiuHwlvpIUpqAAnkkNOPYZFRtgSH7JX6av8UIDdgcXrJNGS5JijLtT1k7DzP4Kr7GrBcVkhHjLqxzcIif5k3K69zpGZpUvHn44Nugp031rAxCiVstYCrlENe2KQ96+nYqwTYwrWF0s0GQe7uoFg+y4/GbwPgFKi9seojUQHrRuq8zK7fubwd+uTn+9b5KtbgU9L7MEIzn/swjzD+W+xDvKhu4iW/Mjj91GLOz73KJW7htemBCEEOn2MWhJqx8DvqALdcNxLQ/aJPNbprHtPeV/gqeIvqPN1DW2xx40ent1nMPjMGgb8XX7/lJi38mByytG1u/de03Sn59K7dRmomoMqSwFdwUQ1Ppp8yjEYnSC8zqEzipluPkLzU9E/RDSqHK53amuv5UjlIfBTdnMtqHnroHCQvQQdrYcv1Z/maXxi/c8h/rUuMefxLFSfxtj/6PubOzx3AV//vRjQO/JitymYIqut0ElOQ49FTgkqNqWdjBmBj72epkOL8JCRqbkOBuorpPnS6EfeqEG6rVMrXJ23vx1z0Du/fbuvelP30ttIITcEJo+fTlvrTu7r1pT16mW15PPN3qyeu96V1fk24GN7STHwl76tTkxU1iBbGdEHRDZ526Qovh8IahM+pbR88oVOqLCQyd3KZObzw7fEZDffSkQtl7ja37ANu2gu0L6r+u5Qc3BxjIy0r6PrcE20xdRlw2JgoHXAZgbH9rstPiK4MaA/CX4qY/gIZ+W39/p+MTZ+LiZhKT4qZtaWLSdFwgKTHFFPeX3KyYtBxBeNnf/jyvE4NqC0P5e40BdwE0b0Ol/Cy309X6i2uO9R1LWoCtGPgo+ljv21wCjGCWDHKTPxAZMiR5uMtAV1cMV0pxRnjeS/183+j6XmnZLJlIqN5EThMAGQJ0e7J/ugACFJdWDnUOqWGMLAQSCJEQFNY/ANVfMgx86UPfshOxdrnmLZfDWFLvO5cRN5IEwYJQ0sazGuruJdZG5uXaEUCmVouQnsCwvni8aV/TpPdZMID1sc5SpiRY13zDDGcEHjYRHp3AmJoI0iEopspsvTrKTwgoYA3NowgA4eB/LcYVX7a65upY4YpeXV1xxVesrP3PPrG3rZ9BRglFKBx7WF4BN0kRCKXFtgeZKBTzoN2KLEgDGWwSCRsIGZZ68QNcz7QkQgolBfdRiBHOh7GEFFqHTzj1qa+ZmUcQTzJOBzEc9uFiQhKzC8eh2Fl5GZu6UsMkUkGVG/i7vbRPgbK41RRMVWBeMg0zc7hu5nVLVO5d+8LYyuXhyj3Pi2/pARTDBlLlVBLlyfUT49+UvXE1Cnuy+Qlgi0Eb2w/aoK9nggnFaLK37A9Hb9kZrqtbuGlXIejvF6qV4x4mLnJGOCOJi7iHU/jTpj/mho6EYp4E0B8qXwu3iTJ3DvX2do3gWaH/Mot6dlZW1naGuzIpGn49frNiP/hk16rNv3ePr93a6jjwKNRqJrdcFis1NCqLxYatStyi7rqSUiPs3QX1NQhETX3ey/jqq6rp6qr4Cg4Nn4vF5uIJapWLw9OOcFb8666nl159HJ9Xj6ipQexkpN9NbdbREafAXbgrTtHWSWm+e6/N1dJphmYkmIhB3YbYhQXe+lqo5W24urAutq7WWl+9Grseao9t8N+HeH0suBO0DB8dnfw29e2o0aMzK20rV1ZaV7AAda2Nmfg8dh7o4z0z7wjT7maKhINnXiWizGTRXxvWAWuWrY2wuA3h9rfsATb7AJgyG28SvEh4MsvJ/uO6/P9GpkYfnT/Xf1ApWfD9v/URB6caLyVGkq0tPNEEK56JF0ZH/bimfXNqUftwZ8HRt+KPoOBUyymKu38npWJVSrjMKeTeXU6ueCwj+BzF4Sc28uN5jXxOQmxLUkJCC8jiAb0OjRSdPkgiWqMC/G0O+vtZ2/gTQMO8sHAdGjGkqE1sZEfXjV86Mb/uGI0Z6keMjAY/v/v9T+IembTW65werdcxaX+kq5ADwAEzQALoZBSdg6JSYu3oBmZuRqY2RAq6TDhOD3dkhdlUSx9CeONSeFjqTm8n7wEIram++Sestl8po/J9CwYiy+P5kkQo9AG8tS2ehOIJz8eEO7HCbWtikNf/xsBdl9Y6EbsjcvKWviQ1tn/PPvKfwuN7VvpuXrYBtH4sfvsBHz2EfTDbVzegU9tvm50HbEHAnJzv2Ff0ld+XAbkRZlYKBwjYvT5GXnwiicqj+smdVl5aLLrJjO0K9XMqLSuNwV9pljNeA13G+7KnFFGLZNgW23RXKkPk6+J0hBgvuCJgpGAd7MJ8iRSht6GcBCe96R75SN41MreOHlaeEaIiX6JSX8nlZDa/CgTp4cW7O4d2nN0dFfZMbsrDoRtqksF+MpfBTv25jLeSPPKfp8+Qk+VVkPpPr4cm94/0JPeHclJ7+4ZSBiEEg5TteLtl+CMauKMjFC/bAPpBxwgPXxwH6/6p5fP4xckX08WeNumZwhDXwQz5r9dgt0ruNb/YCghCqMXY40lxrqgDia6HY8/GEqNcrCyoGKxntKPaNxQUVzKNTUk9h+XkEcmCBLaSfKZSfhYzOLF0EQs+I/NwoXc926FJ9s5C0cgnKdLHd2jYpZI2RYiukAz+7h7j4k6Ko3l6JbCCTA/pDz4xOOD05prGjt/01nRzz4g+Mut4SCS35woNrFQovRZ5yb4LVWeTESvZVUNvz60/8ucT3cIhIa2rVF7fpd2bFt5FYjSwo7jdC4zcmQA+28MtgRmACtpr5blDwiU+HCp3LLLlfa9RFnc8Doe9KrlLPkn5AayqikgVJEuVm+OHjxRd9Ejmj3lEiPB+sTlMVWTMuvIKRkBi/k2fnDO25J0m6H/t4ghEVNA/Fg57baK8g+97Ml1RVgx3Lx+quxWK5go6CHxgr0Veiu9C5ZlkxEpO1ejL8+tz/nyiWTglCrpL5Axcmr2ZEV0kegM7OrpngXZkBhVsaOG9H8Njk9HB+828ZSWcEyLgnD8SfuqRAGIRcCvteNaZeK+O41gH917yq8kxQW6jbRM3/bj9Q3n9TZebcLA1+3Xq5c0P39C7YRIduqi3CPIyGrMJ7ol5H6zRzNsHpNL5lsB8YOv0IaWQ5wPazhrj8b5JFw475p27KExFSTDu2jh+SMxPwID3dWFYPHPmYmJu4YUE+kxCZDJmxpre/AyziSMehXm7Z1BpmHSfMB8nETPIU+TLuB2WwOrdVEJuwVgCDdNy+vTF+DzliVeGbeTjlk6lDsQIds+U87vqj4Qf0B+4PZt/NEs3mYU9rtRklvHw6GnK/GjbJ03kePuTjXo2Ov933kHlpL6tiX3KsLn1zF1E08m5bLtgAx8LTwNDK3sC2C8hYfDkZCa4AG03xsLVwMTMAQfq+vP3+t630bksO6qB9zIRuNIMEmR/gx4h8GD8AWjo3iUm/RQt+h1HO060/bPySCXLTqpkBSql8yKg4G/XW6lGbrY12O2gozjyYOGPXic2SRWDhiWePrmprf3YdVcN/aY3Kl04LEXcJycd+y8ROfj/XxX4EJRB8VYA49KiPonr6wuG31sieIGbdfP81OnKpZCQwH4wYEcQcqgOjj+X480a9wC8r9Jvhr38+9fv3+jDO7UHokBnIEbGSQ1GJwYSuEHHGGWph3pw4zhyA/eGXJOGiEZj6jnSGw2A97fhvyaOJDxerhMeBTu1ySYyOmQjd3iob4VJ2wA0CA0J7rDFqrnmg3uaLC0zqLBiR0tzrliaFzDvdnlJuJQBCc9nO/0CNTVs1S4elHrqx+HhWe/nctP2ynZbmB6kC6QfmFtevWI1gRVdYpbZyUOgPzSt1QvMVbhWEphL/Ehl5xX7UCg4UeSCHGa5Qxjbsxwzkt0VECmAQa5wsw+J5iN+4xHBcYXSQx5eoQmuoZzv7pGpM/KQuzfnIeVwwOrFrUH1a7/VK0sdqBRfAp3i4EgPwOGDyeFosGeQcTgqxc4uKIiAC30ClxdL3JLZr7mypng0xvOrJ+x9Fa7pE0zwCaq/P34fNPTiViZX5FzRwcF4HD3Q3oFOImCDSeFoOIfH44MpDva0ACyeHgD/5Ib7vblmZzV9rDp8bDbn6iLi5OBYum2gvqepx7/XLOywyleRkF89kwYu8u+6mLroG5naeYPuyYu1BsBMr2B60Az9DQ/qWzpLHNtNS6lh27D3MvYd0EM5PNZ2CKLg8AySkz09gOBLDSBgkYLH0haDyQTc93TbLtYaMDMqWe50mzJMY1QyQQ3znzH3ofSs7V7WrE2vgeZzP+wObB4WYAUMAGz0fcxj+AanEsL6yAibwzFsDfH485GCcfNwwFLnKE2hbH1r1SbM1tcqCQpz3wcJb/6QOesH2nlolzkE6VtzzNgJOyqs15E3q7xHo6a3y5x5q4oa/lWbCsKBdiA091W+sz9N4VKLYwnyCOtj62xr6MxTEKfqYKkphOTy9k/LfuAbLpOEsP66t6P5Oj4NnqPh1J8u4BlvvRrIdzYKC0+ZK78FZymhBReX3YBNk0y3TePOikAlIs3MSkQ6xYrKWiKrY4T1sTRvcKkhg5QW1346S5z+Jk57iVMRcSogzu3skH8zjme0f93jQX9wP6kKX3XnSwO9FK0cyW81sbo+TsxqpEOq1/QG91vi6edKbuql5VLWuIpWQJkJWJEIaqVIRRSVFfBNxkDmW2J6QtgaHv75yAPh0+7mn41lqfGvOwPQ/+9+MnHNPOTrbUMSfWErEruItuqOAa3c0JChibA+H/qmLCdbMs8jGDOUJrMZyYV2KGz1Pmzw7V5zH9XMUUUYJVPFpXp/oxWjc1blLu+kvFleI2gyeQONGv68+M5+kTBslZO0vKhvNrQmH2i2PpOtmlnnh9sQ/hCrZ+udtR1BqhjtymH4j6sd4vZ3HmGz4rxVUSOeglbu7nKHihafwg7xWTu1GLSRo+V1qGq86Alw8uQTSK+bdnLEmSa1YDNooVyA+dYrr5lVWod04rS5uj+kIy18cVqLilIiSNr6A23x78vXU+0gTVmb0ufWXg9Nr7Sn08Y6JdE+Oq3JaFagtDlnzX2tdUXYbtUMKXWV16tvVKob0YRW06VVdKn3SDdDtv65sht21WLdnK0P2vX06Gn4w6VdsL4Y/e4cfpLaaeQ96nsc3kqWGq9L4eL6I/rUG4GaBWpvpX848aFE1k9aR78M9KuWft0ZPesg94matUOUoJfjjVH9CBtielgfw7Pm0TAazDy+fTREYzahvFVCjbzhp6yZJ4z/tJGdTleG4o+XR6RkZOhnnyAsFBRyNE6wEugE7bwmbEg4/glXljDrEhv5l3guMBtJAPwYuCDFFRlu5+Rr0Ht5mag4tTtjgeSCqm6hUXgpFBGZ4/XIJGAorAiL91FV09aH/wOcD19jVjsotohNTdirCR3AMxLyrqNIaM1F3Ii/AUzvG3ukjWA4naefwMHtFJEKgH0yi+OHaUaRlov8G005AB6HXNdyERiLZnQuctazgVLK+IRyNlLBpmh/POoOuPOu1tW7g66DuiUjoIANlFFOBZuWjICYWc8GSinjE8rZSEW86RGeUVmkAmU1zJ/f0AaAY76saYYfKCvr4oJGOzwX62/ldOf0jXpNS/8BUMEVfuEa17nBTW5xWz03aZgI7o5xu9GWhnMXm31x6+Z/ve4sfbvg2c/m8l8jn3rx97n3LH89P2du2/0687/vuc8ffWUR9hjXn8TtcV9Ujq8CrmvgBwIruAFy8G+8AQmA3bRnq0PVYOj0FAHcJp3LxkTo4GJ9ZssOZg3Lyd4vtd55po8jU4K00prLPoqbLYCmzXQSDWJuEcy26SScQGtkcEO4lhsatYNDiqIFmHH3gtUKyKLj9pIAnpoqQCKwr6Pxv94NDIBat2tXMyDzU7bCjw8uNGpGZoXZMbnP6xsxEVZXKTg0RLhKE4uG1uTvWog1WumQT3KsGdqzyVWNaCgC8baZxxLxtlhVoVM6l6umxGRckJpKa+yH8bw28LypYiX60RlLOseVG1aygx5kkUZSJhINYq6oLQLxtpnH7UK2JiqVzqszJxjclvJrWwmFnhTTv9colCudDxXiqYA9fWZRYpXSkAdKOv8UZ9XBdUW1ao1Vn1CtvVd3XLVW28FZcyADNswRdBEiGxeeUJsWbQZAkxDWtDaeOW2gi5DWmrKDUlAos9RtM5FoQKBk5tnSoplcbqJW6dnYPbMqKQKTl0Pp+EsgicldZYDsYDPrFMAepSZAojVrHadxGlaRnh7TBuCbG7fkNhk356oj3l2NtP9ew4n8JTBHqJmhQTJZ7AC+aNPies8QHFIXbQWwxpFasUb1YWgJTCONXNWIBq1kUSNoWJMc25SG9o9TNJ5jfR63DJQC1eKo72IGgm3PjAxYpV0kcVvl91GyXq3cjWxGplVu/8zcQ9S6qhENqqQY6MRM2rgQDWixsKRzmfdRtgdneOaiQg0+2ecwypZYd5QsGsNQlQ8m6hV71calTWsdB6waLOlcVpjYvhXsl6ckGgHLjgPwBtAGS3Bppfsxsa04LRNggH1N/PuV6id28AoKoZWdFmvTwCenNESLIf+f7xQGipYiJEhxBTOQ9EXlwz/r+s31dF+9EehKc80vA4AsbRV1B6QDJhkEJ9XV7QJtC42hCVDX+KQt2I5E/2FzupjLojwOgFjsMRDfX0er4TVa1ypOr6hz+FLEBeFoSlmqUUN76cSO7WHkjjyWa2uus/rbi3ZSbaAHD2GwUUgvHAR684/+XfNyLcxN2aNlXRU1ID/QXz05P1+bE8HSN8dzrrqK8aazqeqfry0OlkFY+q6cJghi7aVWzyAlw3QCpnXNmit3cnpIiicVIY6s92KJAXWXaW4ua6gCRANnlRc1YKaZU4H0BUovpfxn9A7KUKU5WTLkNDrGzDgLJ5MF9MWc8yfcSMWsKJ5TGioObzqbqv4TYHFpGZyg7MppjkisvdTyDEQFdADj1ANuFzlgIcoJMImndT6Pd8vKz5qbpd5+3Z7aEAu5vWhYUPKAjJpQ5FsCcQvfflqxBdj2ltxj4HGxkLnFstRgZqMbP69ZVyZY552eJ2nVQABAqLtf0p/iXrgm8t8c5wMAAPr/0X4/AMDdN+HSn9rT8wHOSgAAGjAAACAA5uTpD1xeGq2/HB/gQLBtFg0f+nBwmrDfSXguPPyVjQiWDabSzvXGCMuHzPrQ61nQyg1nip0L/FlKCm0fr4JW44pyJtdBhqLmJGjsPjLGquGmhT3cwm3ES5uKN+oWO6X9XdkQsQTn54CXGws9VMyJVfIOn0KW9FqscYJQLB67pb7uZlELlGrf7p5h1cJ9osX9DcvCHMa5b5S+Xp8y7qIqaPpDpfM6mTazzvKeWmRKWJfFfdWEoTPZuvjVpfmhToe0QY9lIr49qh9ziHlgexBu9dL692+QBsad7Bal/T7TRqU1n2nj2s6AYUfDiaUqJdavgd4oNyLDR2XHgmzRb3ELkVDWVbKpyhELlI4POiJc6lsYu4mp/dQ6TT6Y15iqfRiljGw7W7I9/Q+nh082nmlr//9+IDc7+lprh7Oa0bR3FNnnUjTavYlfGvm2AgPse+AVtG6/bSQrLQv8uahZLS/fUrNCFFQYEIJmlMg/pfuYWve6fTMmcJ+xWqo3vzIUaWVTuKjGJtOlyiuADZwkyxDEnASutCNzxOfntKlXV3PxfrJKtVSBxZxax+Yd+5uQQcs0J4pax7yn6yBQbWegw0VN4FP6G6rKWczavi2kvnuPsSDYQE5B44CNMKK6jrZe/6g9wp9NscbaDHPbqGvqY25k+nIXeN6HlDQGjjaNvhaoJUYsqJ9b1c/4thfYUSosqcetqD3m17dy66eyiid9VZtTc+RUo/Qaa/HYbnoZFFtnyzhPdAWPvTassS5XQ5td4Ui2qHvWq+ImtLvQbw30+7dytiSvmjGlbC72dXFIp7x1+6tVuNiUdjZLUIRAQ3mntphCDj4cB6OvwGg7h5tajrfuja5/AKtDtgMo1gjoum3/TEWI7zCH+MED7VBkL3qQXuTpEN8bTYn42VEd4sfj1DnZmOZGedN7G60MCG8awKg5ZXaQvjwPvH9uB61a57YXZh9TXnBzziegYYVoCrFmPCdmjA/nzyDFrfOrQ7gRAol3DJ/FFxsRUGutSG3EghAVjN6Jryxzo9iMNpL8C8vJp4YttQZdTxk75G1JGW5H6GRwajpbDnGSIA4gWaZGQe5ksXaN4cUFE88Thj3KZVZZyuMhn3GZGixyc8XCubfVFVn4lJUHXSQmMZfd2G/JRsZWBw6ZooFPjWi3xkbmWv2CHhDHkm7vuSYFIEuoFJpfDHK9wUyxPN8oCtGyYWL0jGrhF+DSopnPu31O5pjAqF0luCgAK81+fcGMktaKiosVWoyRsjLngThYqfoPf2HhukNJy8PF01VIP6lUWCu1w5LdaMuVK1QanWFwJaOhlViusOHRTa3R6r4kzxgv+frh+/phcVAp+mNssIE9hyo7cWYYqJ0XLEWD+fCFhYNHMDJo5782ErKtFYuFbSsTDncPFSZchMiv0Pvuj8HFEytOvASJkvAlS5FKQCiO/Ko+WaasXaN/BZ+ckX2k8gqKkJKyiqoarK6hqaWto6unb2AyAsZsWn5UnFtYWlnb2PpiZWMH0RgsDg8RiCQyBycXNw9s2+Xv5pJS0jKycvIKikrKKqpq6hqIppa2jq6evoGhkbF/X3UAYYpmWA6Xx4cvP/7xH8cLoiQrqqYbpmU7rucHYRQnaZYXZVU3bdcP4zQv67Yf53U/7xMwmS1WG7Q7nC63x+vzI5IKBEPhCI7G4olkKk0zLMcLoiQraiabyxeKpXKlWqs3mq12p9vrx0mKZliOF4AoyYqq6YZp2U4CJlPpTDaXLxRRqVyp1nC90Wy1O91efzAcjSfT2XyxXK032y+rzQ5phuV4JIiS7HC63B7s9fkDQSUUjkRj8UQylc5kc/lCsVSuVGt1fo+2SeXfP4iU+b9+H0UgGDQ7MdHDvZd8i5QSvl7Um1I7YMKie6CTo/ugToZsqT5MUnvDXOLAg8J7H0p1UklHXTOnQJSYCOEq7Ye4fcbLG74zDrJ0zYELwt44yIARyr44yADu9XMspqZmXd4vU1fxScF56fc1DkCamt13oNgjKaQrIwT6jC8SthJPU62+2Rkp1hhlCUV1h9Vn1CaSomPKD0f1NSLHpuIgql+1l7LHPOQbiqhDAKhPCkd1J9u+58AJgvkcikvKlZNzZ03Y+3ZeBikxK2TyLVoV2RiR9pHYxcPw5UYsrhxJ00ncwx2aD6lOpiVhhzSOBS+ORRx8aE5tbe/MSI9jfR1NDv/l1eoYM0m7WJqHQ/BSqoMrRkj7vBB8eSgZgfN4PB5ved42if2kE7bUGVoOI5bA3BBo7XL8YtJ0lqyMkOosDefYzHZOptwpWaKukaSkXValBQxGIpfwOhHPSwiCESKBUp/4konTX6FVAHaUC+ScLSHAAEExnOAc8+Ud2wGAoBhOcEhXG+wIpkqeS3ScyG6tvk+f+K70LefJvymbD+SWfQfsuL8TJFJwIKsRspZ2PM9duM0vLAZfglhCC6ghu61x59VVfQRkvg9vXfMBXc5BBhiV57bKqXEPExKZMkFV3/h2Z1h2f5VCKJZUHRtwkqtT3LGkLsONfQn8APi0JcKPZu9+fCvYJr79c19d3RWdshvy3W+Dl5u5M03abR+1+MoexzV6DWzOl7beODFQTSGXP9zLq/QB9aY9hXASOMorKHQ2MJzgkBTN5BSaKsWNV0MEAwTFcIJDUjTDcuP1JRggKIYTHJKiGZYbr1+CAYLaxsgLJu5ELHT6nHh7fphA///8xy//0erXH3/6l95j6A92vuHvf3/8/fMvV2eq52RNrJcHZyGGUA4ZEjgRqNVz/JMgWz/mpOvx7EOF37E7n7dA+I5VyzrXQR0xlDLzKt9MKt02O7B/LX1nJVY4dP1KqOj5SKi8kJ7cSpofwcqbthNYsqeAdICo2moYzEVaxWeUNViCdPQUT8kIQneHyizUfOYrGD3VG+zd9/6H6eEZAAA=) format('woff2');
}
@font-face{
  font-family:'Inter'; font-style:normal; font-weight:700; font-display:swap;
  src:url(data:font/woff2;base64,d09GMgABAAAAAFl4ABAAAAAA9uQAAFkWAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoEIG/1gHNReBmA/U1RBVEQAhTQRCAqBzCSBqFELh2YAATYCJAOPSAQgBYQYB6g+DAcbFeBHd1oJ+HZ1Vzk2zzuDJV1guul47ZTbhsaVEx+3uMiAsHEQA96yYvb//39ishFHTWGqYhdw3N+DqhGOMGSZmBdEtEQPESFqRUTNXAqZhZaIHtqGXT32dTu7d8yTa74KwlZ3yjXgcF4RCMRdmSKFO7wV6aiiCIep7a4S5GamcI+Poy+JzCyxXpGZILzocD5upFx5uSFBkKSgm2Iw0+wwzZKmkKTCzWCSKZttcLTnUrovZ8WLoyZc1a2LmGaK54um2Xjn+A/+9hyWk5kfrb2TbUNuNI14NU7GcDA44ILbxYeqUf5EvIJG/mu/AcvgG19tHuGzi2fE5YDdwnuJmaWUIzzhifSe/zM7iyTPQNHALtm5fC6JDsQ3LpIl0lnS7NpezOKGMWAMLMYYY4wxxhDjmFaPkAIG0ig16aQ1UmojpTdSOmnkUjvPcY3PEaAA1khnD/6iyKOKjCeXqBgLbBGFYioaU2OryxJV0/sB8vbP2Mxcc+bqkg5CKndirjmujZm5ttmYa2abI+csdxhyXRFJritK0eWoW7eOWzq/Lp2fiTUHoZLwVAiVbh6XsEhIeOQWsSQ209+L+oYbBXXb+6/JAww1zdJcUww0epI91V5195+dy80tAuJxCiHxCIIxig73B6A8MM/aJuum1ax2asuO0HAzwD73v9EGiWXlwgPd/Hq3pkvmE4DTDqjx6W8IYQ12w16GmJWq3kg8opIIWURDJERS1MoOLbyUDDbBP1R1kw9SwNAjYGCe7SHGiTyAxXBbDSHd9yTKZWBph+Q4UCatqHiRNVs5/3r1WPFB0bi8cupUDvEEu0gOqHeIHWIHiDe0fw/ME2IepGlvb5pGtlMroAEsiAQQ1Ag4iA7t7hc41G1FMHCdpzHR2eXBqgNRM8n8LUm1YF6wHuksF0ynnZHpP9h9U1y+D5LAcGTgJ9jdOZASlu+6tEBcI0l2gLs0Vfzg5qeYeCh5woEW4F/rVvf+umvua/OVk83+hFTYcGqfJH/iqURn7UthWOiOl4T/3tS03YflFwFYN8K/yKBAWFbIPMdWh3NIqQup/vt3F+DHx5IbSM8CyyjezWCPZx3DcQxeGBEAJYNJgfJoLijkQFKJSYFHp8BzirlyUYWQO5dyKXdl6ty5dVEVLt266FyWhlInYvsNKgclsKyAwM5DuaJ5ZADjXa2VdvGZ/KsYw2hUPM/3zlEHAIwJz/bA0XzVPYIOChMNKGSMjLebqJMXGSHjRHg+vAEv2rcHpDc6nmUJ51SYxUP+stkbnjsH3RKUWaFx6ljq3uTyaUUogkSVJj8lvgmJUnQevvb+tHugS4TjOnA87xb6pTRXaqJWZb7juXyZbjNxbhNVKvxHU5OevPN0JVoUGx7iNoWX1cw1/U2dlAZgAHRhMYBhNADgAAzD8183nnebOwfDwGR70jSPAw4cE8CP3+9bOpvl36RRL21pfXBynMx1yn6q5EUh6ULGXVzkSYSVZAMipADlRuTPplWAf6iENhxiJUjwTqT/3kxoIUvXU1VrReRHjJEfI0ZExKrVu7s6dHwZ7edG/egnjriCAzEP2bQanbK9VxCNGDFySJu+mVqpmGHPm72IhF0TqswIiipv5VyPf4g2BxZTMpiGpY3nzggBlLf9JTRcEQrIw0HosCfQUy+h135CrdpgPOQBJkYxYMMkhI2WEjZJZthUOWFLVIRt0hq2y0DYYcNhJ01Edc5kVG95IQQktOKQw39l5oDo3D9DB4AIDSBbEYAgZ/8dPADkf5+Ua5BCTZOZs+JHTkUwcLZdQzgbY7Usz60jHn2EAVAMXAnG8OB1u+3XfHXvNGhZccWXf5mdp4GYGOdelGmhby71KOdt2P3wGHeWLY3PeLpTh6ayjuIkkBFIUiKkaaq1YZu3yfH3DZktV13+xA+BkaRDw+kLd7e2hR0VEZwGO7dtO3kTuDX7fHcMr20uCCGFIhZuPOZsBDBw0JJbEtZ1HdY6FCCLa77mNTjTCnOrbClfEcVQ5POooGvZDf+42+grv8dfkmnJwoEqgXOm+KXtpuWeQ801MgGLYphDMIjg0drAqjstAfGEZy0NEgYWHQEmeho+jXnIUq9XJf/x/jqwYjSDggb6+/gDWHEHEMOU0RebuGKktUj0EHsIU2/YAb7jmE7dqDl6KiwLLFAhDwetOVvsd1rbo5HPt/SQxZ+JDXuR68D514xpV/FxPvQxMOhNASl7xFizZqVuo3BWmKv8DgG0KEFNOcShakLozUhN68aYQESmxKIoWGO4FU5ZNIgNTaa3WFrhfRhzgyPgbeSYp5N/u//3naScMvsTrnky1c4gHeujJP6svArp3TkO1Bk1qlSlntXLEwoFgDN4hFkzqGPIFL9UNhqziiyvx3uQc52f7iElQO2uDIrgt6Ej4EXndj2GQYan4hVAuGE/4hsrZ8/OxbYXYyCb6xmOBVjvjCDs1iKAysrX7OeGJ270bPGB+LTtv5S+GGClB/PffVf8OfUx8L+yBSBgE0hhkD2vwcBFaD/nd/0yNFjyeeEpHLACtrt4j3v0T4iLzSSooXFIo31vkgRlQ2BvRGh6COV6Pa6HcSDvrO2nrmgto9g0b8+tDuvSQYO2R4lupMeVBe8dntzdr3kbd7HXczFPi/cJECvrevxEkshjjScgoGvndQ6WBqS14QOrLP3lqWEBLEIXemsj58FXXUwH6+ssse4bIu/jJwTy1s5c74G77PF8pi0eNmiS3kJu/UEmR0Mb2BfVVTqr3oX6cPn7cGK6GuCoc+qzyfu602betXotJxjHUt/DCIkPR+Z2cWlbq9CoxRu8eczI5jjvnbATBAczF0tq0FR3zG+nhr34Wa9L14PvrTeTbRyMr6kS7+Kul87PbkjQsYarZ89rfMcud/ZoLO8Vt8LVU9mqGuY7K9YWKUmKkH1iUDivzcSjO5eqpXMILIhqD9cVbnscU7lGmoKmMlvlJG3DXtpNY7qqh55dsKul4/iBz9peRAqYUOHoQPqXW9/CqdSXWiZwXpDrrAyLGhp1UwgxHY5T3ieMSD5BqC8qobBlPVNq0lpNjW9dj/31NrmK+PPMw9gO2Prr5aJ/965uNNVFzHM2eGdszxlnpRkylMNqLOKCu1+nND61hRG9btdJaCC7X+1o25Cf7tYYuwKnSFUj1H7Rz+jdr0RMxjjzI6V6yhtQnfmBN3cF+Ajm79USjEBeDfXeGGL1i0i9jU7t7fkvDO5rKWkNhU3GK909NmabksbI4dBqXJ5Feq96i1m7tEajXFvgpZpWWcutFs3En/PxsgbTiikPv0lp1QgoP1bvCZKilGfJ3NRard6BzZqhbPBaIv2rXhJFH1PXVWjOjnnTQxrs+Oad0ulMagazIdzIKiAOQR+aa9tsiRnW1S7p5InXBSsgsvmzYT5i96fCvg6sx7TbRajn+IUfe0PkgrLYclJVnR3N+mULPhAtQV+puQOHwxhsfDoVXTvbMzbqjmSTqfaq9YPmdNebjd9xcekB3c9atj9gIT84zBC/V6gBNXIqRc7NxA1aXbDXjeu9WENNG246DQpV54+DU7SSAyX3Xv2P6CZwGNv0s8XGttANXZ2IEbjbb2J6F/67/nvbv2zfvJ9Jm6gnjPJkI3DCQcykQrBBPD5GxX0QjmO6qhJW0JR4sHHh03eGX2ISgItQ9j6ljlVsWlz3OTWBqhpMJzwWdiwWDsjZNkvaCCQjtMsv12D8w95ujE76+dNwHFSmP3C8QfoF/jxYB26MDvi5F3vVjeB3nwD+TP6faTM6rJqjUAAtCZFFRBU/NPoPLMQA7IyBmMWQ+V0wVBgRRkxOKoqNjF08ZUmcaEh/jb5BFm8bOfjR0VXg5XNagE5PiVAGKkUw0gffHsMcsM9osLWx2Mb40XAyFbFVpp67E6/RyKYhhtwlG/Py9YxPRYxDiPFISCEZOZrb7Tbwj2toNxxIP1owA1chjFCosInNwpnFXF8REpg/UQ6aQy7Ok4fzdXvT764nmQKFWANU8TTIMCrDjSA10njOJphEYbL5BBZYCC2yHlGjhp8NNiE22wpts53EDjv52GUPib0Q8D4HntODDvFw2EnolIsol9xB3HUP5T4EXOdhy0eeEKvnJYWeekbouQ8YH33m5IsfvDT4H6VG/3LSXGv2Hxi1YOIXRq1Ypu1oJokC6mhgjAfaxwfmBECfE1CnUkDe0uZTFl++4XDx49caFJi2fqOjawM7q35G+BSaZyZhuWRB8iJqxsraUSgs22tB2UXnX4yYLbFi/8SxzVQSfLpSucSVhVzqqOA6yVDnsnTh/ezgm6hcfrmUj+R1lUvdJKq7XCooUojexdQ5JRgpxZxlwpZirzT1luT1UWh9RddP3vWvwzkAb/ZgKaShatdw2RqhiEYpsjG7KJ3fsjRZUXyFH7nX79cNeC7dRibqKW3O54yl9lG49WJMsGcuxASaJ+EW9KmagP/IYOWnL6a32tNb5yG82I4XKxs/IrvLMYKmmgfP886K9CdUvgBaSi7BdXM4m2s+Rv9Bri4hs9x6TBPQNd2xgrARNCDYyaN8AuN2dwcMwp2YKwknFBENf6JOQfxqlc+TTLgo8fSHEQnHHMTmvGQLLLIQzsjEyMQ4NPXQfqH9QncKNXhDKfRq1c7OwsDOon3PPOibhfWlLoxUO1btWMlTakjJSclTqnPSkE+GJs0QhTdtAoVk4K3gTNQ21TCmg/dL6Bc91svMIg3V56pqwUm7DkneI9Icrye3UOhbaYlvHwM/7X+aF1MWG557TRbkzKhOXC09bgMC/ZoC9VZkWZyN2jJxyQVQqBZxU/5DAPOTIksMinpzNk6df7MD0EnIvuuP7X3v/U77tlTA/20gJTNpxJoJi4SGX5d/ZZjZ+6uj+PP18zCfDMUDPFLpg/ts+Mg/yUdJf79+PwnPuAfn0M+veTrKLX+UAcFPCH7ep0I/PaICoGkN8S+aiGYGjZD9RrBwrrAFqc7Prr/ZRNuNq10B602vu8qsToQ0wyN2zBiUbniSKb1ZKR0IiAABLADlUUW6Z3HsqOYKQ/qvmwomYpbNnUOeKAUmsZtllmJLLVOixiZltjmpl3POGeuyK8a576Hx6j0z2SuvTPfRDzM0+s+CAMGBxJGCtUmiENYlgyxsbB33NqXOq83pC2lbu4S1IxMR7c6CrT1ZiW1fDqxvJ4YaUDzJx1qPjzfdDk8FKUicdvyZaDQ+1WLiOX6hudpejBV8LjWOPV/SsLjdLPadDmJxt03se7XRwPM6zH5RLxavWoa/R/7pdmenZvwVY6Qq2aVIlSadQEZPIgsxS23WUWy6EGWa3RafE+v9JmySa64yIB7IQ4+Gj31eNRBPPfPci//9BqAtyYFS7S3N06U7mWDdmIF2THCog+ewvbQDIS1VI+ahaDlXI6cRQCtRkmQpUqVJl+E3mTrI0lEnnXWRLafkfSfJNW6dGktb9DvRxgILYlXiIgEJRRKaFAxpMmTJkUdFe0OcdICKokIplaFjq23sOXCE58SZC1du3Hnw5IWAyJsPEr+g6tCS/haCgSlUGJZwESJFicYW0zhGxIIbx6HToUu3Hn36DcRgYBmK0wiZcMZZk6acc94NN8277U4sLuKtJcu++Oqb735YKT87UWucxOrNULGlikSTUkaaTO46tyglayJcW0RGTzGv+DI5QXDE4mZSmskmRao06QRHGYRjoQti3UYcEpBQJKFJwZAmQ5Yc+aAaQQuOIBYXD1+ceAmRqHMgkjRcc90NN91y2524KzpYMteFWYNCV6PKZ32BbJeUCj/NJr0+GMv5Tgkk0YGWJEl2KVKlSScoGS/DrN0U6wsyCrvI89BrPszag2zpZlctqdlzjWquv7hzp+1Gv8bW5XTpVXUvVpdrKduVTdP72rr0StMvyifPwPOWgk8kUqrTrIdrDzN4shkqRzQdW14dN3guwhcnXkIsjry1ZNkXX33z3Q8r5ed/pCG2y+VZuC1LXdbBpjnADUfgm6eaT3YYKWuHRcRBjVjh4uGLE18SliM0kpQcC35A1gBVLC4evjjxJWGpXbtdeV7HSg5ZkTgkIKFIQpOCIU2GLDny67FQtWhTnJm0ZrKkSJUmnaBk7PBvc3+uzNsKVnAbT8F3ceKPEloNAAAAAJVYnHpryTvvffDRJ8u++Oqb735YOfopClwxcfBof2Y9E2cMYitxJBYXL8rkamC5CpWqVKtRq059OTEABiBWb4I4CUgoktCkYEiTIUuO/NB4tREmtwkhW45cefIdUqBQEZFiJZUlrooKlapUq1GrTr0GjZoc0eKo1jiBADvtjUtt5KJLps2YNeeyK6665rpbAdXdnbjn/uq//2TtPxJfqwu1VpXk2oLQa31JrUMMWMN5rSmZ/jo5PV24omwJh9Ic4Zec5MwlvMSIfR9NnChblsfLdjly5cl3SIHCUjSACidnGw7eyBH+gKULEl1QBd+i9Ci0aDlq6Y5HyagPQw+0yY0gViHuJCChSEKTgiFNhiw58oxfawSEVojQwZJ53q71MovesS0Rpbp0PXQhk8Ox2L716JK0By69CEP/Zg1eKNuDMEaxjDAIw9KMrG23MwkLKev0fKdPIcmRfkp/BKKhYwg9CptPqkeWz8qWI1eefIcUKFQUZQijXIVKVarVqFWn3om4bG1XXPXQQnn0DZiPdyCymC+/ZkmYbH36Xst2K5tLCs6Ej0y8dUs++8+yL7765rsfVsrPKYJtMVHVryUE85wBYbCgx0uKprPNkvTKJJZY6HBNwp5GnHhbp1be0quXiwBrLLjIXOBWdOnerdlmERe3yiDPLwydTmDEAHq+CA/nUqsREdp8uUg26fSh6EAX6WxUSc1ZZVyw0Tq9YZaomDTqSHZYNokHUAMQ443jaOuouj3q8lyJ2yHMHA7M0QFPjI5q3BWFhc1oZNNkjCalu1yeiScCE6QlziSroHFKMxL6nh6aah4uwJL7YZeqaRFcO0qckiEnQXwCCMfm6ZdscvYEUYcVeW5Nd3UfTz0BnsIzeA4v4CW8gtfwpvT7kc9j/8kjDX7Bb+GPIozMfMJIJtfmHumichkQIc4rJFq/Us6GPRF7usN7/oU89O4k3vTSzpnJuMQjbT7h4o6cyTEqT/YR2ZCR1BzJhjiBBYoXrSkdOMoMEutmGgnubsNMnBBfGDmYn8CfBYrRxOgCBoSuK6xGyGjXgRBCCCGEcJ0hIUt6TiwiwvloEgrUrCYdhei+J2BJxDtJFeK1qUmvIgKkRojNqaCRNhuuLgbodWL+37Yjw2dWg9ihVaRNgAH+1wICQf2fHJF/+17eeNVlIzFH97HjIfEAM4YLnIOc2BiIOMwPYYLryVgmGxxOJ8TwwfrsXwLML+58TypPAjFR5IC6snH4GEIs0RXxyqqooYEWG8Lgp434fc5HAVgb/EELgZCsu00Xq03V1tr8z+/5xumNYxuLNwo3khxMBVXfhu9wEzohEyig/7WEXv/Hu3795fVJ602lv0tXS4dK20l16Ewf8ujYuCyMcC8bsBbUXSRjQF7yhJooFxShGCWkZFzJuVHI4MadRwQdhSyAHOaY8JJUZHtyIdgQCmnkIR8FyKATCtEZ2XipMRcFSS6oCBzh0SnpfMexkYpF0lyTApM/jQBagXSBT45JxZsPXxw/+SKiH3R+n3rsIBEitWOVJkgw6iWRTwhjti/eXSKJTKHS6Awmi80hO8/L5F/x6hICDaM0yHbqMNNqMZlZcpIxkC3wTFWLTSEAFCuM5Wng07BTE7NwqcD/z7LPpvoC/i8v/HX+cn+Zv9QvIe/yc/RUPMIn6gl4nB/jR/2I6PqDL3UdV3O5t+3kB9QfKy+wx1u1aRux3mu53NKkYcQpTPNkjt1sG4lmb6FO1RBgcLaHEg3f1TmpxhQUao58In/QgOpfIwNtUcisfH8OnUY1FeYH2qDgpjtsY+YADySA1kQ7mD5f/E4lZiFWttAqSKY776RWBdSKLWEKy0/4UXSAFhTBmmt+c5wEeDhAc4tnvMmOHoIDNLMQp8khCDSFvIEimH+U97bc+pcD9Keptr+FhZFHNUSefpsujfqkHkQyin23EdJCQb1iCZ4+RWPj19kIEDy9N122WmM9EDy96PVv5dcWkJDB03PzcedXEkEGTw//UqKACpyoRyqbfLyLJ2tgBXI5+dMFGLwL27Yg+6REmj4uqeImKO2QoVQKIENZAlcW75pbjpNo3QN2SnyjxrsallV+1M3Wx5MkodVS7UVdbUm09Hkvy7wvr0uzmqOGW1gGLepsv43vCtqTIkCtk9+ujWfUNM4uDS/qaO+OFlHjCIEPdbCXRKl6IlKq1t7TtjoydKluQe3sPvFMWWLVS2vrre4U3X+tNlvUxrFGfY/V5qhd8cTVEefDLWq1TASoROHkIngPXae6FgAEfDKb9tGF5gTQanUWmrUkLRlS6NKzl+QAg72toE36ev22M0FrXk1si6DWZyCkrZmwti1nzu0qSGi74+N3pC69He0ur5MogChCKVLUg8B5yixEVtPL/DGwowFaYmJqu48JCBI+LUM+cWxaE0WOwe+dIogCkRGdRZa7zQAdr7WCgB26Bjzu4azkbyh/BUBKiTYs6/SkPJg58LxUFXZGaykXGpvdNSbpL5gkSied9MsZ//Sy7U+ETS466EY14hTt0BIQjrK6ApYxCmZxFzTSa45aFeQyf5+YusgV4evlF2vwhl7Clhq+0c/2VXKgqkIdnhKI57NbuPw4LVM8QSUVCSKVWBnJbsL48jNok+0HnPCS0Ws/ddfil+EITMUvwBBk6u1Ahw4Z1mfU5h8w5rVz79paHvzhdaGV03SiClgczFsenuZbE5WtYjgy7j4DzLL1DYtyTV0Np3LmAMcnVOT+uDdNaMwIVYark4dOlpP6/yE9z1XHZMdCrixJbHQUCBa/V5F67lqOI74Uny5DdPdO8e5UKC89doPMbhutMM+UGjkVCqiHTxEjkpE2Av8IZFTwUY5ZJA8Qlfv6NEcIOZADHM6L6NiK4BORKnxd5FvhiMl35Ds8jnHi0eF4kGF7XqTnWqUnOcoHOMTr45MSsDLRUVNRkIjEf5eD3wT+9FFzA5O7OEd6xTybi5iyn9ZBqKZB01WnqgikUEWHRzzC5pqC2iTj0NV6gf+CWJ2YcUQogGFnAQigkTOnkwzUsMaDpBGiQrGaiBDWI4A5hmqAhKIjLqYaI6C85PjkkrJtOaA3N43fNArGXRvH/adaTqEIcH6bVVmUmZmUnAzNgCQkPq3SnLr0SXkKpaGd9rbmTh45YLntNyybM2nEzltWLZg2ZtCM00w5yfj9e9UsX7SVprpu06hGuSLdd2hWp1KJWqovV0XZhhv2uYb5U0cPXGHHzVfMmzJqwNZrFs0YN2SmaaeabIz591dfsxPDq5VpW1eSlRDWsakiLyUqIEPqPBIZOZB88RnI89TlWs5mOJ1pTlWKkpmkbNMliRUhWMzRxSfyCNOQ4zdn17JJA85578GZHUsmfPbiyoE1M4ZstMZKS8yXD91yTff5zOMPvcqlrvuOXs0VX/alHPdYF3Te53zWZzn9cac4liZU8zasv+rSC25hB7djm7ZiC1a4icv+xv6W7LkOa7nm1a96lStbIUUavDX5yqVioWpyjpYaCYeCgThaNBIOBQNhpqemJCfCQr+dTel2UXGQLZ7W5QdwyEoiFgAAOI7jOA4REZExxhgjIiJvG71/8mGdcLTUpAEAnHPOOZIkzczMJEmpkRgAAAAAAAAAAAAAAABAbiEcrRAAAOecc44kSTMzM0lSIUmSJEmSJEmSJEmSJElmC+FohQAAOOeccyRJmpmZSZIKJUmSJEmSJEmSJEmSJM0+qSFp26pBmXwC8aLQkbmzY85IQ0mCDy2afPbSQzecd9RuG62yyCyTjDZYHyW6yZHVTCS0uo8gbVrzA0vSh0jk+qh/4/U8d1MbIKXUkpIkSUqSJM1+XFeeh9ioSJwQDcrkSBIhi/TixCo64OCjgQqO5goeBWAtYkCYaKnIMGfoXnwdBy7XWdS2U10HbugP7SEnLjE9fHgGeE4d1zhMJ1UUkcSWjgQLAQwzPsgBm/FfsZfxIK7HxTgV/Tp6iiK7/WPsCApSNEw6hxYGJjwoFVKsaYgw4EDYM5DhIEFgQQ+HAhYUCps18KlooIJBHZpUKCCUiI2BwpMDKxYGGipyLNLQYqTBLUTq6UqknKyjeuInauhDHvexG/MxjmaUIxk+tmjymYmHqkjpdlSNYtlScLEE8ebMmoUeR4FFAs0avPe7e2qdddReW62zzDzTVDMXzj48unx9YEGEBQsEJhE+DpHRkLTpXt/TMBwtNWkbNw73xy2CQQVoSteRrhOOlg7fmdEuSZJmZmaSJEmz1M98Hbcmtixb0Newl42GuMmy5ciVJ98hBQoVKXVYCZHiCOo7Jd7OO+Dg1zl5Y+pIq8JTplyFSlWq1ahVp94RzZo0aIzg2TYwcIUjmUhENl/UHqlR+G/kwdgdJg9Y4AJ14AcuqLEP0u6GeckaWxcsuBaCRyrqFL7wgDQ6YfYnH5rQU424E8vKKQnyNBuq2gk0MT6CVb8NUeV0tRA4C/wfG6rSssf4VgC/Z0NVePJBPEOB77ahyjUtQOsCfJYNVYZVBTOL9wmEKtW2C0Iuc2kqgSC3/U8f5J3OhBW7J6118hHzqEMhIJ6FTZJ11Cllq0FR7tc3GRhs1qg5AijLrYv25GPzZo7DQJPnrjlsowUmqFIiRxo7A3yWwy0F+RdARAfAB5QCAc0A6DCwGSGeAlwWiB8GPqt8QRgKWSAmDYqyyndKkx9nBcKsIOky5JxFfomsaiTDnFSsCQmpA6HeCrrkCtmVM7zjWbZXa2gzx+cdw28SIrQRjNzwY1EI6NvagHVFa44jfwE34gpfW56vj/2ID/6sPuwn4FF9aLrpXl/p0nNl9UmOT63a/NlofO2VzOMBJjf90z7sCZgyVmfxp89El0N+YhI7Rv3jvYuOq9bv6t2nsvuDp+D36Z0CSTAG45W/D/7Fk/ANT8AKPgvfndPwIx6+JM7A1yS5HP7fuyaR5gjhQ9w9xSfvfVzhzLe0sfT4FHjplTeee+1J/YImF3werTju1/fC7pTbmZab59PXynbFZVfNuOKi2XvF5mR8notxvp7CPOM0J5xqjhs18h0K9EELHChBDiLopM3eXPTpihODd+kuJPpHU0SO1e2SROv7E3C0WOs1aFKrUU2p41DVnqXCrQ/zRvH7E1DCYo4Ch+TLk1tnCyLz6YM0xkslkCZdSknO7rED+sSXIL4ZJxb3fxkIhSAggTs4gDVYwVyZLI9IFrsYIdhCMU6jQFxsMiJ6fkLsDIR3Zy4yEiZPQ8RKljVNxgx+1UFZZYAT/iuRhXzyeSkLnO+SL3FgKVgm58qVNydEDpy5j0+AZ0yOPHLnNSAIMTFyK+GepGlDn7aU7Goc5n6nacWyacGMaYeufRcJJtCDBnzAA2Rgos7d+dvDwF47GYZ+OUNoR63bDLbZ+pYU4Ot6Igf1ar3N1G2iRWO0QRAbVwzV9gxlp2qFqqYc5XPkC0STIgNJWnIpKBgcP08nEINwEOACEhRRQQ0dtqOHCebswxp78PhCIRAqdDjwSCQJoSwipcpUqtaizXFJ3naHHXPKWZfUuqvOI08999EXDRo1z+Ss12ev2x1wsOX4nivvIouZDg9Q+akMPU1AnZkaO2ly4fTMHqftN0wcCmBVRpQcQELx/Q5tE9OLcU7HA2HPa1XA4yOoP3Z+tjJ4IwDZ6reCGYA5tpfZ+LNDNtTgfvvt/1NA8vV0BPImAI8BUBcL839LAioigIbIxf96DUV5gCXPgKGIDcnRKIjkHkD2L0AAyI45HQAGoICKKGgwPdQ4A8UN+7fFUFGqtRUmeyZmetTRt52iKSfKf4P+JNwP7if3B6fkfDg1p+XCORuXtB263b1T+y3cLd7LWnWAukxsatqty5wmeOQ2aqSYrX/nPDjVfTZzUfyxgYttSb/M5PM1+FZjTak6eSf5Dj4eZDgSCjEo+++mNKbRO8/XUBJgos9APmpv207eawuY/QcrT/us/KBTNH2t7bWO/b7oj/RC5sBIMn2pXPjwRaJBHVE4+q/5lvUADnnfaYNQviqx9DdZ71izrn3oAHfd/2nihPDT3XldtYUYDHCvIQZE4yAKs1sfo2IESJCor1ct8DQuXixv3br00Lzp/B9AYbhw5UnJi0oIo1DBvS1WqjTpkiVFKUWxEqXKjPKfejNMMdUc08w212IrrbLaCrvstscOLc656prrrrjcSLVee+OtF5r88occd/INOOWUSRMs2MSHcJUYgPwZgP4UyNOg0j2BhtcESl4JoksB4ACPhFu350+PRvKvS1ZrPF5ww3jfrNaC5TzNjt7AeCpMKvulDc2AF4sr7BEjQCtxIIuqRDblUPatsaCndOArhqxi8Yql8kWEM3a4g8+ZBTgrSEwWASZUYuPW8HjBKh6BoAJYQsAzQksKC6wo6yIcFvbJ4p65nizzpjSyyFZkVST8CkzSaWMxn4uhePItEpMf/s5zTrpYA7HOQmVxdr7APUgaxrDyrZMafUpF9f4cQgfQ3/hKskanmWQ2CRWUMEhywChdpCTvSX+2oZNi2uqPve6+jMulRhJHeyTXm7GJOpx7AtaP5vXxQu7nBFjrBESHhTZFMWKHbYQlsNUk29G7095CV232L3DAsaWZSNvi2/zXP1yzGiz5b4ZgTEbEjN9zvAdZKXEmuDxI7lB1W2uTPDntek1gG/FnuXp7R8rib6LDJso6cZMg74MgLpBTpmWSbv8MQySU+iYo+al2wC4ti0MiJfeplAmzsC9jKDIA9aG7knM78BozyVPOftf06UMqA5UNWEfXRS374CkRFauZM0Rp8yZLN01oUu/zXE2B6I9ppcwQiYqoftctdeot6cjaqc4DyUGW9W8s6CE+EWOAjDKpDQRzyXVIKIbol8Bs2ZHtTKTOadjPNH8vyo3zCJJWl8oHkeTuscJHnI+Zir2kofAkWd5JVm29AGeANK8yhSLZgAXitUT5rqySRBtSN0a9bIweUHsHLFSLaKDoiI/SsS+BjSYQNJEVdJKpxYxpUlKiOpS1cW0jp3b1qpiZRhlToDhYR2LmwHBLI+HycM/gIJLb2GXsV9bVFyfXKbkKyDdk5e3NaS6MtMqfZgKDK3d9JplLyhD6/gBagVJdIqWac/JDvQ9PZI8E+dnPWGpEkVXE1hz8u9gFvNI6IZIkXGdEDB5VVzU1yLgyfUuULV7kAg3eepqoGa9mYOqMgWztGjnIb7tkvcGMpJokoevieEEyNDglJBSP1daxm1i5iXAzKAF30kf0RAaDPxPZBg4LiDKcLqny1KAlSAbwiktP6npJsmUKs6XAalR1etT4yEyqr3cmAxYcvb7nlDBJH2UIRN/mqUxMpvuXrTlsI/KsLCTquVCLvRuDqgbdtsV0xHqTBJdM11xVU7KGO28MMSdGVVmEhyHYhcb7RJ8+uam+VFSkIUMmNhvPEa0MxiQZcu9VXFNJyeSwjKjLZaj25D4SUgDr0APhJixAcXmk4zZNMC2q1a4tPkBup9VnW9uLKnVGND+1gWA45xoS5eloEuqkckwowOlX0wwlKHqzCgqpZGRFkRAh3XMqyPt47JHsXV2eufqjydjZn8kyuu5swZYXvbFAPuNzJxPUTornBmxtPdUq6SrqrGON+8k96mW2bHEXAq3K5iAMneRVjx7iTzHVJkgpBLa0c+HKYCaYANLai1Zy1918hjr3kNBSWJvSUdOWlCexgg7mGV3kJKo68/hy7BRIwzKXebEj2jueEG3PppMufa89uCiyod2VpZS12rXlL8mJu9LWa1YW6nAGqDyfb1I+nks6IFcR+og9UAsvcZhFNcl5jeizUGg0C0CeG4DiyX+se6TMOsGqI/0KFpUxxWxZQ6jbJVgxrIbfRyIraViT9aHJCLvvd1WP2YU+ZcE0tqTw4RDPhsarhdT4KJo44H4zctG9f5PnRLrDYeP9HMfro2GHmk6783X6cqTkxaVpKiDYL1QaY59ViRmkOpIiyLMRlhZm0dYzhZkVTiShcDSrk1MyJDTkETuRkVUed6kuKmvK+vRjL94iwzT/G6wlKylVe40mnwoYk1dujgrEpRvnYJBB4KeUPZJszs9YpAtx3dE95lJJL8aJky6iErGjLiDp30tGWET48REdDQ8nJAN2cauzsN+oEtkY2WrJC+eZ9PXEcU0idtFEJW3jfwHCjSvXdYnoG7+59fydmdXIlqU4AFsj5tLU/esxJg+Hh0pSRjrfbLMwA680bZB7fyf1aBw8wycEv37lnvchLJHd1z4PKeMvnzuqCjAoyFQkEkjic1XrrmnEcC0RrWgSyWtwlEevJgjehpUDOkvqwBK+luZm8lNW2UUKNHKPs+TfEUEStYIRIM1+1sI2Wg/WsqpxMvMXpSjPnmUsS8KUl9CBfLZ2UfGlyVaxF4cr6eQfx5gNQbFa/aL5dcRQzrEEsVcStBJq26aGPtE1k4JTGSt0dHE/0SO7JbMaGqJfihKMfD0MB1rAVpK+G7dnWDi3KUDxtMW5lEC0PZ2905GbZcsv9VMC5h3pZipO2DmfW238pAn1WS81fwWe1syGnaWwu59bwPXtZpdGaQHaMIEpx9kY+CycIRtbnDDYBNOYVzLlKEFa0mX8cisNVSXQ+16qo6xpazsyekiDLMdQpEI7JZo1SmtdxMLmAkeTfnBZI2NmARj90Tc3GCKOUVlGKwXwtRSLNJ5xmKoxtbeCXjfstLDR87c6XrdJefTRZ1Q7XM1fKr5qJzdqOq2RofHjXuRV9XGmmZ1oecmQ54dFtdQuH+oGqSaUWaVwPB8XDscerIV+DOmQMlXNthpDXuUQYI90ysssZs48g8VkhMQDnSngWpHzmJywaiyCBV1GFAvFiIl/BsLWctIejpuPICtYChZbcrCymBJbBjmW71ELBWc9W66sCQ09ef4kNjsfrk/0/pwfklWZczBGTBWu3+t+JA+6/BhPuKgztP798Vz2vDg1+jHwBFPnWf0vRWdL9rBEfDTr0UMcILZ5XOkxqxQwPsm0U3ab2m+NEVjOuhqD3wvCSQmnz6pQJMMilo4nS/7e1czn3D3THxI8SbPGorPFe3trKj4SCqoeZiE7vrBHFzYwy/KZUMY8zKsyRzD2OhNsVpnIU6/7V6pThysgseA18T2ov3vI+7g/8MS5HXd5lY18JFNve2kSqP3570T2Ue6JrlyW4FgEQRNflUmN62QWtZRQCDUMPy0NTP3i4fucBfopGmuihUtFVTgTloxhFaQSzZbGsPh9fDPcS1i4RIbwk4KwffgKs0H4sxrUa0t4k/THdUW/D+rsamOfhtj8S1TXmlICD/gIByyQpWDJwzKfAU5AGRaZm1C6FqsgxS4/Hts3yrt/NaLsr4O5jj8tbAcwtKyC0bLhYNA79HQiPIj7sVzdfGE8S/45Evb8edae2G3Q5szwerUjEia4aCVdCM1W2HF25V5FJ+vLtGL9zR4GBZkRRRS0yjayV5HCPKDf66Bq1+kcNzfeBUPmotnThueJJNVIEmk7pq/VJJfrqo5ibE3s9/Xs1mgPt+m0GouJGlnt712cdcmGsn8SOcizZB1F7d2nFnliiINuWTwLbGwZK0fH21R/J5wf9VPma1jInX36yIx8ZEOMnqiTWoKVI3vskS1A5Rh3OvDuVPErm9XvGY6C0bAD7nGX6GM3f0u664aaL6fy8P+A9N0+nQ9Cfd6/W2vcZscZ4ciFp+tD+8f63PVQ08nXBxFeZc1JL5Wjbr5qlZNHT9128yr/d+AWdvXqz3Dy72Lw9vZ6cOy//hdyVCgE9cOqRHeajJz33uENg4AG45cGOdUf65Jow+38qHXK8RJXkzMWqlubV6MWL46HhIwcK4j3JR6scomI3mrrX2BNiCPGNuSVukCayt5RaZJLdlxw1W7KkQ8NB/XuPsrU/VBd71dhEEdxz5Ajjohhi3IlXl41T7yk2Puz+W6W199H+1ZEB42YH85WKMGMx4CGxxFnvjfOxeKWb57/0WOw0hRqRvamN6+yNyLzppRhhluceGVN2SE6fccNqAdgYADQoHAR/+9Diyb7I+M0lUte0tRbTP2SbZitJ9CRUcrObly2Z4EuqfFjfdaOe/cO7vzUcLT8ZgRnMstPBov3R8i9yiy5ieCGVpvuJf1eMA0pHyi60rszdOlk+T/5cmrXNtAh1qMf0NCfFesJ28zFR64S9euWR18K1hHQDciK6f4tFo03x/Uz+2Tgyj4xgjWfY+VO4DhY5DD4PD3TNQ2V8iR3ZVUaKUejtii53hFP2Y0CqHpOGEjvAMUWR7oamGohtQ2QJgqbt+7cQEkjBeBZznmiOslEsxEpeYpKqTXFNDNHtCLw0CC8DF7/Hh1cEUsHfv7nlvoDK1Ixk3XqUc+HQt13tY2NIJL7MNvH0Q/R3souQzS/Xnw+K3DM6v3QRW9ZkGcQE+bY+y+1mR5frsuamPKpcT6Fg2GANP218JVIsP3tkmDrs4LDZvsu8I53Tv3d5lev9pm593wU734m/SiZUBfGItS0kgQ6wG+CffxZ7tinkdvknooPm5O6dmdKJIvY3pJzW7f+lSF13Os/rg+6n9ZqT8h7Kypsc05/19RTatt4u+3pxi1tQKgckk4ayWmIOmzpHm6nuofob5mgZyd3cmfO+mfM1sMBlyADTp9WZFT9aeYsv6on8bgVxYrI73fgco7a+PNcHQnBdbaxGk/NENY7peEljF9TodU/f02qP6OCGAUUvj4schOUxwGqvhsjQYA5HADknud3vNJPrbYhftvr+VRaDiKbwBo5HZ4uOBUuGzEBtJ1hw4rcdSNK+bn+DjDqmwOM1+mAh24mJQrrwkoq1/mWKaqYlD1cb+R2j7B9WDXffaDJh4YT2Kbxd9uVIfA7NLWexLaeWtbJIZAEQHXAG++9fGWctTeGI/p3eu/sDxFyy+pY+feZDWjzpg7CGABo82MVhgFNq/wNK/tyjTC4pyXyugkPkyPbquayezeKlhgeE5cXquJ2aOP6wr6rqpwx4ft9o+mRFw/JVNyV0TilsnusJLdSS1yJGcRWKwdlX6yvjI4rJnbXfoKVnyCA6iFBOc4N8PeT76/dZO420Or8gioCA4Oq6gJotNqAwKrAwMCKWj/qgC34U6ys/IPs7IASaGVF8YfY5g33bU5ZdsGr6dR29YbTtSj6hXMcnYsJX5liCPQSFRGCGOUUn0ox/7+DHcfq/aOc47eTvPzz1deLTs6rxbu/2C7F07ntyHLF1CvVwuDulsgbZlypHNlWdRcj3W7KP8RUdp9y71V1zhmnQnWBBYOp5SzuoKa5w7c3/YM9uN7ZO4nsmShhN/lgh2bvCSparI2uMdyX1k2MSbuhtELaZLcrJdzwiBK+69XcHJe5El5kRHGM2xyYgs9H79nhsHcfR0OJs+/mDA73SaIHyrD80qIEZlkU8crhcsK18mimS/w+d740oUyqrxOzsxKeefRpDLfRxdAnqBq9Jw52k9WQZ2QRJwANbf/IXrEPKRjv8GKu+5VDpvlcSUx4ZAnv9uLJyXW9WswHU/qGT6Spk4xvP46Fec68rEHRL56L0bmYQMQCIwwyYSA4pCJQAQGQUxLtlLDdBw4dp2Pz2vGkh2xT+/Kt6D0ID7hhnGwVAD/2eOajVzGHGUfXp7rZ5DnLbqO6kD0BFQ4mL+k3tnF7zqknHTJe7+ElNAouHM5tUlecjOX1OaX0aDS3u6+5RbBGz4mDPeQo4TUs4jig5C9OSnpny+4dDS9muU/l5blN2+U1wHWZycpxnSqOgK32SUmdgIYmseLevLd1fc2fC7IRMFTXmQuiBY2ZftkurkXQCajvpWTx07RcgT+F0cRL8Y/UR94O0SbyvKYmph1pRPfBwkcS5SOqQroHCEXh3rWu1abIOklT8wT+FFRR6SLH3jkOq9bf8O90fSTC6v8CAwO4UtULDZr6ukOXYaszlGV1XuJVYsVduc/qG5qeNOjkYA2zVtbtuC8j+eO0Y0SYl8GKP1iW1Nl4lifMiXTi4m0FvnUWUbEuZ0/Ofw1dzZ8KsxCvpYoWNgnJmS7Og5iCzzvv6ZOhHz+DCH+X+T9/TF10iRIlOd/KzeXlRMlR0aXJ24O8NAn9EMnktNty2Jri81kOK5bLWTuOfaV3AOYn2vM+nWTeUU6ePy/n4oITscDg2hBK0/hkyUbC0rikyVURZyo78XpJg2ZAEdF2tHCGe1OmJLXuP0CNLFa3+FLZwU0ukqMpDyJl9allBFIJNQwCsl1z1h22JUQZuTLzvB3N/NyiVFXMnhk8utJe3f9qj2B2d8Sqz7OjKopBh+l8bj4ZHKRorkwlKePn+gtPuiua7+rEXdri+QMOAvLVQO+qfcbdWdf0mR9H1zc+P7RddUb2mzo8gcGtfwOnXJDtPheYbeMcD+5JA6W1Te5RLlF4y3hHMW5VWXZWS0U6II/B/lHANeJuxXYCsmbfFhxOfeeGU18T7L+HKL0RtcjF4IxLUAXOe4r5nYCCWnfs3tzlTXvq3hVmigFpmvPmNyZ75OC9C+GEARiDTj4EkkR1XixWrZevKIh/AlBQ87tMCGM8Ji7uVIwMISMJodvArwqeYyOdd/3+m0TptRs8VG6DfaLXaJF8Nvq4/EWEi1wboldDFS5JsqaV8N0W2LQI6mqb1EYm1ma9b6ioqzg2s/Z4DfaxxCK1edp+V9Ukcco+TSc1nHai/pTS6wissnLEha3kdr3UsrFnoSiLJGoV/cIP+fUkW/z/psLR1lCqVfoe6b6K/pYi6cckwCzBAKBhgM3NV/np2NinMTzcp+7b8tMtUyW1zsM504vgnFNHSFWBzvcPWbY81Thn2fJEczbqsfP4sOujqw0O6hPjwVV7+N6xqjjRMs9+f9BF98Vr046PBNrFS4p/DlW5zy44RldFe00JE50uVsbHx1bEuEympbtdKOcBpgM6PSp+LznH6cRKlkxUMPwrTcKOa/Z2UdGIdprGcE9I5Z4wv/YJo695s1znKtj8+ILE/VcE6VbXClISeJUc1ytgEgIghDbAAHYlUuQyjxCL0OC1uELO+TAaFkCj++89r1Q0kydN3FjSOytggzNoxKN1nmx5vah7e1Xpv3pao7yopGnabWoMip9//fSKL/L/qgK96RAMUB4MMPu6i6/LNXOEuI9EfuJoqY18ypi+s1yYhNiraMnz7XLbi041fsvd3kS8LzGhAiNGsgmLNrC1CTW35AP1jQ1jwacUCAvO51rZz7iEZ6Hfatf7pnLtSg0phdcKuduX3nN1ruUXUkoM2DauLb5sf6WAelTZr3cP3d1e3S/7w9+gQAOrUgMx4P+tfQFeXtP3+SuI/J9XH4MncfoJ7y9W9N8KgZB3VJPu+oS+W8EQ9JFq2dMAdmoADAwAKkzmzlbhnzhotz44GuQvKLEtIAYQM0X4AGqhm5uIUT83st2p5d5jfN2IwkB8wIu3ivOTejpyQQyw6Nd6HlQ3i0UMDou7BnCr99OY1Y6+qUTvAEGHU/yk9SSjyt4niejhHJ9p60c5bO0Xh/A4gui/IJtZM39nf22/BLRA1+M3XRuwL7Q+rsJZ6L0hX1oPuZW+Jgn22x70bh7yxU4G1offlFwGyNoqQANEbdK641p/TkG8vw2VOF4uZDUEUI5GsQNajwSyIKDD5T+hA0rZ/DUjwxhYE7eHzLzxzT3HDeEyXD+Po4zCPqFWI+iEv32Xe1AdML5qQXN3xdlrFk1n5ZU6utSijiQnzl4PFNOTMwhoEM46cEc1O1t1p25O2VNG35BCG2n+rSwWpaWeFuomMKMyTTJdmQGtDSHw00RRKveE4X8Twk221YLlJq23rKoryK3C+HtzxWlKcq2brvzbvn78V9K8GzccSsZ/wVrouP23hpNLUZotTrwHGXDsJrKianF/eK0rOdvP3z+/1jOUWe9Jyff3882ud0Uxy8k5jm6pRIJbUpYDxS/HwTWJQHRLzXEE8zGtJp3Ixbe5AlBBxtc8XL9Xl4CiUlcg9khKwY0g2OX1ry9x5I1onkhOwrVztmaEt6SwBlpACzDDKM11VCNk/EVkmBx0Abp/S2MI7H6+4c7e6jaJliTaeFcDz6NIwt3IiY3bHxLuD1Z+xkYkY5xT1oEyPMlqOGBiT2uuV0DTdOTz7MqCT39nbW/7nC1cyDpc/F4Y1KJP2k8Q7nNxisuy82fPM7pHw/+uLJ4g6h9+Goyf583zAtWIoJcEiIQ6DiKnTvaXRqmoCBgQIipk0koKIQRs7djROGjnnUHk1HFGM2psJoT4BI0paiuww0XHvMbXhWnDXvuNhAzvvfdDfC0ibB1twzlm9rZx5i4cBLFGYmZEYqdwZGZ3Zs/PfcPchw8VBJt5GoaGGeVAiPZwRmgRv3suKgwlPLWsHO3e/TfjBT7G0wyyRbidoy2LY84OYucXnxlF6glHp/fA/mELCoJMPXeFhhrlAn2zQ1GhGFMsRBQoLhQrsLOLZj/b2CyT+GneVcxyD0aOFtPHLGrwE/1le2N4VvVVTC0PzNQmCVuvZ3qbRW/SMLbuBEi9UrFOBklWsg1ERGzLizbTZA28OP25npxDdU/GWU/HeP8HLLdOTLHaKQjRcTfLr45QtzKKf1ddIEWyY48/reuxe+ZerEmJlG0PHXoH6Ro/0Trz24RKIdiVW8915x6qe0qj+F/ACpu5dB2P2Us1//QndZfy7u29uOuE/H2n8j1tvuzOcx96tsdw+EMgfeVMgt6dHjyucwwwcDJ+b9HrV9kt6Dh0yV5XFsZBJrWQPmvMRSWg5mlHR4KkoQ96isSa+y4xmbJc7NzmAjdpOa7FTXDY57bXMSjZ8O+l0wyt/tl36ViL0t9Dlv0Uj2bDPfg4ib32Lzj++5BnmwYMfRmbX92zltkmfSE/pTTYekwsDw5YtheTM2LrggkdwINI24nqeBh0QwNOBQ0exH+W2FAAi43fwL9qkbrERZPrH2EDiQStPqPMtx8yLU6ezDR/+87oYF/ProOiZ5nP9SyL0it7V2a3RNLtwOa2gAUQQOdaLLqp5ZhUUz2260S9gtQRo1CxyQuamucvyETu0NScnNywjtl88ewFjXXnJ2X2Liu90hAbNCEhgq7rUhGLABgU+GV3XBtoLdNPp697KDyZfhJGw1tT8XFfu2z1Bor43c4HcNDv2T9Y0YjkmcTEmeSUxGkhVp9OJD0leU6ItPvjT1xfqRHhgyCnyYQTDuanOWZ++MnEBdj0C9bbw59N6HC0LNnt6T6ZcRY1ZwFjhKmPmX0AXtyTChiHRYnJGpkYvIRg5DpMjEyWM8rzbpry+73zBkhknkQsHPVkFhUxGUWFTHpJIcMOWtmqAQllY29hKBTgAoZ9sQ1s/JGOcheUPmUXuh7MK0Q6Qvvmx5nlfspVGbSM6CrlWA2iZwdHTedq7SjwL7OIgmBXWtlmXdxz0Z9IJYTPZ1WkWQpgW68zyQSA5V1z6gBGzbGAzGfRGGZ8BRZFCCwIL19k+b2NSFnuljF8Aol2vdjlek6Sh5rEu1Domu+Jz2A+Oy/MhIlEYQxRofoluLCQEVYoQun428fY2sbYM4sLQpkFBcywAhH8c8+mAGRTxHEuFIB0s90B/1f8gsc65EQ4cjovj9rlwaaVeRkbOwVyEEl41JlI5ExeDrPbOyLwnovRXqfAKEQayN+214wss21xW10ohMonQne+xXxGxdCMLyqhO4DiIT3duKKTdNuQCnC2HDsoxIXM0FcWRYf0sfGjy032a83X4LMMiSQsJMKO49rOMc76JA2fOIoGM85OLU1JNQ10fYRqmfYPcj4EnXgSTyKZWbLqpVmBJwIJTTvs8Kl4GYmPt3Bge3o6xRwwd/k5+67eJROz67rJJFXScdJ8A0lMSbZ9c+qjR6mb29tBhOSe2ouDHZtvwzQ1YlpbmzDstB6V3hEm/BYHBhehYfnaWtiQ//ZA5TW5CbpyrrlUsofAxU3g4eEmELh5kNOp8q66csLD114dyG9Yq65e065nLwhatbXb0mEBFjanb9ZOb114JGjdpN2awiYh443MvRoVe2k6VgIql3NRly4hB1ZVSsROT/NQVVBRJTE9jawC98pNW5+1jr4ZedOq82zm+fjzoeennpMAak421+JrU2phR7xZ/tPsrKf5eSDM8zN/Xn5qnqZlsJlpsKUFEyaWcIFZsIUl4f/lBRFtzXd8CEGkIJaj3Xfp7OWjV8dfnj3Tv082fR3u7w9ZzP6Z5msp3EArc08bskXCHi9n7XUtG+3b0g93jHaKav9r+w4ssiGq5MDjx+mVr1Gu96KKExYeplW/QUtWYvqkpjanJic2p0YlHTiWlpRyDFDDgNuFk8oetGUE29nSafYOIVQ7+5AgUK/KzNyF2zQio01pDI9rOndtbHrX4SB/hhcxPBJIiWOlU4kvTNubtE+NNWmbdrxAOeUDMOADaIC8aYnh4B7BijDx38AxMtrv4WeeIejn8eyjonFNUmyUjx+PY3fV3seFfJLfVP9UenjHmFpe48q2kbTcsHikm1gWztV4vyvJ2FvQncm3i4qxOYKOQfl487j268XdXIJGgF96+Jn4xI5+iYKyL2L/W7s341wsqj2qjByU/qQPJQf7bPGo+GSv6AzqDjAi2DaGsp5TugqSw/DkY3Y60cXAzdA5wYMUwCZ7b59at7BQ+YiV1BdDca6qKk30HMiSXvcHtK3Ly78GH2pHcCydkvb7BaTjcVYCT67olSiY57rPkoEn+h6w375djJ3b9ipQVHI3OPEIg11xMEIWUyrbUh7PLjj2pScgSXNf/bMVbrqkeY9J71p5cE1RItpT+yq4rPsko5OXkd3y8YOsvwxWdvv7N6EH2nraD7SGhiUfPd594BgwzNHI1t+qgxI4iJkdJ+PNAoP24SLtPL0YLs5SXf8uX5n9PFfuZZuTnxFl3xCNefoadskX3yEfqERQtawjzD1JfJyJMceOlXUzi8iyNt5DsXF3jrK0lhWnJh++5p0hPOcTVeznn3ogVAaTLVOYHUZLL3/oA649T/8cOqvH2ZUm9ezl8Z4vVNl7ZBzoyWddISdUIYLlGbFWdiQOGe8YS/XfE67TtGJo7wKvPTSfoP49aHHn9gezWiN4B7pvMcBWPmhwb2kq+WbDdLbYkqBy7PsZxSFVaepOa35GVQbGwKHVlRbbGxTaEsFP6L/DLH7kmxDsZM8N9jX132GOD+QkREGZb5w3xu01+91Gph/sli9+SEgtCgyvLI+RRTPk+bm+5NicSx7C9AsesTlk37hcujw6Rq6ynBWYWvSAUHBjn++Gme372W5Ec7/NBrqWYfZB8/hAaxNTf5yzOxlnakKxBnU2KXjQuCTV90bDpWzEkqBy4us51zxV6aCdNvGCmnRpQ4cjrgxOb1BYS0RcQt8dpuiReYCeqesuuxgq2drfcC/ekZ3Ahgv5aEBS0AAKHXDYYbxFfNkVh7L20LLV15LSAaONpaVTh/mI4bBLvktgve3wr+mWqmIu2i4aK/De2L4BqWm1m+lOgjzxWdaD/VLZGfvQYY/+UpMLkjxBO1ftcqqHcBtmApjszOvPevhevDo33QkIPCE7NeL6bNrh8tlU1vW0CQ6/PqfPpMn1115kOzmkBwbapbqwXWzSqQGO6T6vnrHTIlu3l1pSMZMaTniwiGuzKWVls2msqzq0jYtDKiVoKJq/fQZGdYaCBhQGBz/W9O3pAqNp2Lk47c6xQ3emQQv1B9lDpIXubU/uXxyb/factr6iipP7K0/Kgca2Mx8R5yau5AE+VJ+wz0V/Z6kVyXEJhROnr+aC23pwN0snAwNjayKo5V/+0BU4fSX/3jD1icvlgQuEGiSCzYeLsAM+3XkL6qPTtD/3Hlqb7x37v8lLqldwUT6XJZ+ZDBFQ4db/lzojKLbapRViEy4DZr/i3DrJ+Z2glsTpELknzv8ta3qMRuetVIYiJfwNUUj+VjJmSlpRAhkQkB1EkAYjhg0tL93fH3EaLVcItXRMIAxcG6pRd3j7ipy/EXjTAPS9ddC4kCeu2mJg9zlDWv9Nm7rLoL37HifHfi7gv/OVwVu/fET8nnPZky7pYsDqQu3HosVvZUOd7hyP65BE9mqqULBNm/oX70hHE77rx/fjgtM6v68567ccBoL6drjo2Q/1Yn0Ltx9aW2m7Ik1JhWI0Ha4kqKWZkULew9TukBfFixn5rKfgUKMFhOaGfeuKBo2RZBQHglcYC533LHnuiFPDVIN8NFX1S2SbLFx4wxSLo4Z6H5rWSxiwDl2v33Os9Q/03bKbXwXS9w+KoXjD3LB79tF3EuDAXYHZk0B/c74SXUCjD/yZdiHWg5AY4+3DjyF48GN/TT8/DybE+PjEfWcUFwv7+Kwy89Ww4PlDcslusJtF86VE0cAex7mBZHJEEMPBMTqI7BdOBTvsptMp5OhgcPkO9gnk7R8AeKUrq47ujglk1HyMomiiH53SsXRnCTyPLFq6tyS1kf1MGpnMpoID9rODKX7hwQw7x0gqhRxBA3scZgX4UpAEnR9SyWOzVIfwsD7fZ4sW3iD6T53JsgNasw6RqUFB1qiO4icBe/+dyXQCerPUyKSgELM9E3SrXO01HZxcEeoWbtAjxB5oSQ7bFUrIutrw/X1Cehts2sjEt1uVKO0wO4DiGxnAsGe0IPsPgZlB5A0MhB3fzvSaCNlSxXJjGfQIiQ60pJjqFKyvZVlDr9f0v1gT/jnyte49qI90I+/OBYQWAoCAI5LIaD9XANsnHDskaDsqCH27CwA7tbecnA2XOgayOmrVOwz7bA6wu1MhAooX48awVtM2UEuVEAqo1rBTLcX2MeaH8P72OLhcx/WjuE/Rj2s78O/XyTRJWHkvTr7EcJjj1GkQ5dQZD7Zz+0DcptKcDIqhbdDTN6Mb0P7UErB96ZOtofRAD5qEz9nL2cmN5mjKo551xh3zOjVLSZMmoUGT7uLLCM3T8IDmfuwMon2rxj/at5pysI6Hxb00tk+CfT+n0jFAkfb7D+1ij79ijyaxh7nYY4/Yu1Ml9b99vTvop6CAm895R99+DNnZ+2hE3qL45FPHj0V8U8EXq9whxciLfHgYiwJX+cBAPz6eNZHKeBAgfQgYFHqdBDvEZx0URTrNYbGX5ihL0LebC+yb2KKLO9uYNz+FHNyHjvbF1Mas3dORoIucZBdcSHUzAN6ffhPSYftUXAfNeZqTqRwHFRL9Vf4xic6jpB3lhe2n82BqIyBrEW2SBCsKJ4I1EcZ9ALP8epX4IYzSUMfyj8f+P5/pWf+J0I+iN9VwmByI7KhcH/YZy8XSGzmUzcbFAzn6/VgZQkqoboK5X1nENZRv7RCmfhSjtFy88+bxjdXtopAt9TDOlgrwkLZ6grkykBYQgJeOT1hNH7DjRo6GzMFbyFGPhh9Nw9Ibtf4OcpyH/DneD9cjyJpqubbonzx/nTTb7zNQhHCDJysgNzq9bPw4nEpZnLXD9Iz7OJtNgDXeZLl3ceSFAjabLFIr7fo+BtJJwU0uwFEugBVdWA3o++kKcbWCU3uwfHrjxrBPFN38m8e+67+KjpEX7rpcyiwH28LDt2ZFORlIfxTsHrf88zpg0SF6o8d3NTE/Ij4m/OUxvOUxBuUxVN3iu8fhVcA8Ahu8aw7IxFvbL4G2T1aHU7s7fG58pUtYZoM89KNoTvH9X0GnUqPe6Fn/lLA/vLz+a5TyiyDfedEU/wlHQkzHmEgXmqjNb/yS4Ecb+KU2+THpfukNQ8loQgjEtAC3A61HG9BGtAltbqZdi21Dv/QbgT1wVtsLMN7eg46PlstpLFYt7mHVkWBEC8ei/S7ank39/Q3ilrVq5CDaOXadEPM6nk1NxLFfcRzHJerCdXgCBD+nXwUnAUyXWYfu5qZdbBOv545XLyvnBDiE3pBV1AIAT0OgGxEBUpwkfZ9JliJVmnQCGYQO1gDkQBoNajLgiAlszScBC1KkERA6eBLQ85KlSJUmnUAGYUbJc7CNQMlU1QHhcqYCKWsxszM7belYVpJGWhyK8VhZ3ZcPWk7f/y+IgjOAjWgWzaGr6Bq6jm6gm+iWOB9AgTt98OgJ7knDf1hxfZduLf/qlNRfGYs3vsX8vNYUc/P/M4UxH9YU09jaT29W6yO/ntPYASRbbbxmXzUf40CtL0Cd7P3v8f9gM6Drf2M1BgDhn7NAQs1F1XkAz7zFc1rCvATYIjmYgC1i8OTL0+Y7HonLudTCW+8Vz/fy3RPAK9cMRAIUmQebXY9pTdBQqElGOLE2XFGUQ0ZeJmHCJKqOAB19vaurwJRm6doZX5Y/8flTgAPYqQmxjgEdktnMtF0GNmlTuFYY2PrsC29spbvfCwkFlXGBJVKjNaUnEUgkg2AmtLg4ZTBUhBIhQR4gmRnSKegdEu3usfdxrgqtJSAprFNHqx1vASGIJRdmr+LiSsJbHGxILaHmWSGZd5MyEQlQJCLmAXo243rX0zorJHsfZ2YkaJJ7qqLzXhI6HVkJ0ykSIdJbnJFwxwFh9sosxc5KQQ6It3gORVUlJL04UZ2x0yehzpeJ9pOzV+tcilQQECMMEMqoOiStBgBi4uXRAlmVPQ5FqXOLSRtyKGVs84Uc8MCVCmzPIEgggFSZvT2UZxySLYl4xWa+R1UhERwvs6CgDQpSzsgSAd3EDuo0MDnJTqDJ+LLM4OFIULXRypJWwPx5CHpuRWQmaCAPr9H3PEU1hWAvnKq026OGJorVEmNZJy7JCAkrlEtqzEkEEik1tD09MNJJkVAiJFB6RiSRxJoUKIBnnskZjY+pZNfGYLOEOhL1oYqFsa6sAouoIJRZl9LPXVUv68OVHEvorO9hkJGKiKFESKCMtNogQFIOSTABPgGDUQZ27bsAsTojdXciciJIBAcDXkiqwhRBlVywQjuKqkOS2yc6CtweIu/jnMT121oP4l+q2hDgkhPgdQd+s7UwWO/jllgewZ8J8IqdwT1c7+JeBkswFQ6xBbEODf4w1zf02gu5N7/yCK9IMppeYAO2AnkzfgTQHaHk6cYuHyrO0WzDB61B85bQnoDvgsnfxXk6rjF8nW5XToBtc2VcSID9hcF90o9bqivFxABG40NuQw/OxXk2ArhUH3NTu2jVkwxJbGri7Y0KGtxPLRk7zehD/bApt7HaPNbuq4PiANz0/S+mjvSNhPucjxPOyut+ankHDiGtpu37Gi/tIwn9P3lhUI/W0k56hFbsa1SDdszKSjGoVWO/qURjiEOMj+rUsiLMBDY0n1sZ+7L7mFfApJqd2to4FtofDU/GNGi8HQE7hibo0rRPAj8L1LMQ3Aro5MTNp8tTmSSeTGbMC+azkip0pGKRdKonJNz4dMrF8tb+CsNiTs1Zu1O0X1dDGNHCaqQya9umMwIYzbxgG7IgCYgvUEBvYbyedDtt8IO/MV33UpSr4p9JuxliU4UtRd/L8NfkVAtFsT5AsVWqU1gAnnZ/eX3EY9i1abmqwF32D/ALwNUntJj/7L/YrU3EAFD6yX+F/JwJ8lb/o70uAODN47QXAG8Hwr0/rC/22/uwAAJ8IACAACTbixRQa+NP1v+47X1ADD7sUJquObLFsRLZ2H+eV8JXUXA0uFXiFUtS8ETTFsQZBoXYrZKqeK6JQf9Q9dUhOKLN2CDlVnDyjqVoDUe2oWqGOS+szTux7lKqPkDrKPZee4r2JoNGNgDmYcwzxp0ZIPThHqHgYPos1hnGBMXhsc73/S+Wc8nqHuZgYMxLZKHY/29wXiL2rP/x7qdy2LdhrRn5n3izn9q5gxo5q+qEzhaVvgYlCu20Ze7itb+UbWiIjnHLYOmkW4tnHsMRu/ZER1juUty/v0zpdyvJWXj+h85teDZD57Z1YYh1S8HT4MSzPkC9zKrcvszOuXxGDzYOYFbkCfDqdhcx19XRYXeI3qiB7c/Suf/kOU3ezY7AdM4U4R3KEC2Gkvhs0bbVZBLk7XV6tr3cKCQ6OMqfSdEWko1Xhnw8cgd3qjxggbUDS3Ds5jt2FJ6W8aBQG4kuyZxCQRt4BOgJtn78jm4Jsk5/w0r2VuujKBPT1Rar1RzGlbZdGt0O5+TDKQRKAOCU7tpJ0El9z4RgKvA17oomkR22Uj9bIDC304Z5qqK2xdA2fDUOvKG87LRSyheDLuoGniJhp8VrmARt2MXxMrzxcdFO8T+MhgF+g5j4WvH7fWt7TB3ijbKuVWRPwd7UayltPOSeWG/NT69wnRysWUHeKl9TSECBrSDKj1AQudSMfFi2E4Z9qrtDg8OWQ9BdSNaQn2Xwtvm4WU9MG8VNV1hbGk8bxUsRqz9jjTaWCDvkq+0Xrfmj15XpidJ5e3E3pKQpJY73USV1Ve2oidxLDRtd63mhhIwsTw1h2oyHieFpaVpuaJagyAe5MYBcF2zMsejkm+aKVQAFJUQApLtGkEN8WD2ZIKovpprqdxVOoPvo35Vf8ueA6ts4hfI2q9G+Xlcm300+J3Snhp0xkP9GI1cIkCsl5qoZFsz3vDmj4D/FNeJ7VlFaft/Nt5AmNFD0hLyL52oTJWHZD4OW6nOU2C5N2yChz9sQjNfbUPSObkOT27gNT6R+jJ+h/JuJWGjaoRhYHthGkpCIuZsG4N4543VRrtIw/RQbLFvdAYbKy1jv7vQy9DNpwSo2oe4QpQbnrMrIxEZDWL9gAxNWeWrbUYpM6RVY+R4PkZA39VMm19IoYTIDcMIZmYSJ0l6l3rAQ3GIRwuL0I5UzKamSz6UVuV1k6+C9t89TtbPPEtuyKqMM7q2JY2b6HOfkbFCelhjvZLCgsz4LLx068YYdwgc+UsfRnaMNaaXcXoYpESstOf2FDkmwIb2i93JdEOILhzgv4pM/1ysRbSU7zXLB7jx4UvJiVTJyKuPpBTMIYRTKJCx4p1maWz/pR9u7glKLxpKCDezYd+wIz5xRNRciScMREHnzQeJLCfpQ1hcgUFRxwrBETIhcORpbDI7YHF4TX5z42MBX+oGLoo2l7Z3dvYhmsntYN9Zv2Tk9nOUvqbKqm7brh3G+WK7Wm+1ufzjCEHBhtzb1x/P1/nx/U7VWBxoGwg7HvxNGUAwnSIpmWI4XXP6bu54fhFHcbF3f3N7dPzw+Pb+8vr1/fH59//z+/ce2AxBIFBqDxeEJRBKZQiUl40rOjYI7D56UvKh48+GL40fNn0YArUA6QfSCGYQwCmUSxiycRYRI7VhFsWnPLlqMWHFoDBaHJxBJZAqVRmcwWWwOl8cXCEViiVQmVyhVao1WpzcYTWaLlbWNrZ29g6OTs4urm7uHp5e3j6+fPxqDxeEJRBKZQqXRGUwWm8Pl8QVCkVgilckVSpVao9XpDUZzC0sraxtbO3sHRydnF1c3dw9PL28fXz+Tqpo6QAMIAkOgMDgCiUJjsDg8gUgiU6g0OoPJYnO4PL5AKBJrarl249adew/+aNj/KvmDSLlNWlsRCAbF1kx08+aWpygi5tMgt7MWQIRRl0AlR5dGnvRkUR0lqeVCnDFwo3m9h4qWIlPRqpckiI4OD49sLWxqt57O+ME48OzsAxUCy8UgDYLnoxikAdezPouuUW/lw2NWFc+871kbkSvGAYi0VukfQEFdM2BTjQy1W9OKQ5ZxH5VasQgR6RYl8ayqQ2rp6ImkuNbpR63qM8Jnk3FgVUflWfItNTWeRR4CQHUinGidLO8DB9YQ9BUUj1qqEt87U0I+2j4KvEYvT2R91J0oUyRWH7E3uhk+joKBKInaXCczTFt5k7yp3KghR6w4Zjw6ZjF4W7noteyGkWrhaYRLNvs8q9pmFrVVGisPm+Cp1IJqi4jVZ03wcVHSAmdZlmXH9czeqq3tkEV7rLIZMQamiwA3bnK0W7HSnpkZXrQcK+yz6VeUSulGPCPHGLVidXmRHcBgxHIMPQmyekQQjAgGqBiJhiJ1O0GzAGwlF1gaKQQYICiGE5xVPs9sGwCCYjjBIVU9yGFMTbLcimNZ7cbo3RI/lL6VvHpkZP0dORefgNfenriEV2zwq2EylVas+o25zCYemt6CWEwTaJA3H3Dy27a+ALxcR1f5k3DzFBBARz5Tyk+NS3TU8EgHs77p8bUhufnLFKKYM28cQUnVtaK75azSjL1n4CfAD1sstOz35kdzBUvbt7P5bftV3LnuDP/rx2D9OCenSZnyMf770lZthKGBWTSch7FmIC95KtvkeRa9IYYpjxBKgpW8xoL2CwwnOCTFpf0U6lqLsc0mwgBBMZzgkBSX5jG29REMEBTDCQ5JcWkeY1uHYICgshnpgbbp2DLtvifenR9OoD9//uOXx1v1248//cvvaNevr7/h139//P3zLy82VKtknFjPBxshhlAOaWJYE6jUI/45yHJfctJ+rH1Y5j32RudPwHzBZeNTHoIqtlBKrJN8Ey3pfNyG5Wv2yaXl+OE72PbfEdh9Z1m6o2cRP3VPbgT6ewjo/yBfth8MVtPkM+UZ3wQp/hDvrlLEbw7v1lIb5inmD/X+trP7/39+j90=) format('woff2');
}

  :root {
    --bg: #0f1318;
    --panel: #161c24;
    --panel-2: #1b222c;
    --line: #2a3340;
    --line-soft: #1b2029;
    --ink: #e6edf3;
    --ink-dim: #8a97a6;
    --ink-faint: #5c6773;
    --copper: #c87f4a;
    --copper-bright: #e0975a;
    --green: #5fbf7a;
    --blue: #5b8dd9;
    --red: #d9594c;
    --amber: #e0b43c;
    --violet: #b07ed9;
    --teal: #3cc8c8;
    /* Same family as the landing page (kmeng.ca / build_landing.py's --font)
       -- brand consistency between the marketing site and the tool. Numeric
       readouts keep --mono unchanged below. */
    --font: 'Inter', -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
    --mono: "SF Mono", "JetBrains Mono", "Roboto Mono", ui-monospace, monospace;
    --r-pill: 999px;

    /* Plot + one-line-diagram surfaces. These exist as tokens because
       js/plot.js and js/sld.js draw with them: SVG presentation attributes
       are parsed as CSS, so `fill="var(--plot-bg)"` resolves exactly like a
       stylesheet declaration (the same mechanism the pre-existing
       `font-family="var(--mono)"` attributes in sld.js already rely on).
       That keeps the drawing code free of literal colours and lets the
       theme swap reach the diagram, not just the chrome around it. */
    --plot-bg: #0f1318;
    --plot-panel: #12161c;
    --plot-grid: #2a3340;
    --plot-grid-minor: #1b2029;
    --plot-axis: #3a4654;
    --plot-ink: #e6edf3;
    --plot-ink-dim: #8a97a6;
    --sld-line: #5a6472;
    --sld-line-2: #4a5568;
    --sld-ink: #8aa0b8;
    --sld-ink-2: #c9d4de;
    --sld-ink-3: #6e7d8f;
    --sld-fill: #2a323e;
    --sld-fill-2: #3a4657;

    /* Shared header + helper-text scale -- identical values in all three
       tools, so the three pages cannot drift apart again. */
    --h1-size: 22px; --h1-weight: 800; --h1-tracking: -.3px;
    --sub-size: 12.5px;
    --hint-size: 12px; --hint-lh: 1.5;
  }
  /* Light. Applied on an explicit choice, and by default when the OS asks for
     light -- the :not([data-theme="dark"]) guard keeps an explicit dark
     choice winning over the OS preference. */
  :root[data-theme="light"]{
    --bg: #F5F5F7;
    --panel: #FFFFFF;
    --panel-2: #F0F0F3;
    --line: #D2D2D7;
    --line-soft: #E4E4E8;
    --ink: #1D1D1F;
    --ink-dim: #55555A;
    --ink-faint: #86868B;
    --copper: #9A4F14;
    --copper-bright: #7A3D0E;
    --green: #1F7A3D;
    --blue: #0066CC;
    --red: #A3271C;
    --amber: #8A6A0A;
    --violet: #6B3FA0;
    --teal: #107070;
    --plot-bg: #FFFFFF;
    --plot-panel: #F5F5F7;
    --plot-grid: #DCDCE2;
    --plot-grid-minor: #EDEDF1;
    --plot-axis: #B8B8C0;
    --plot-ink: #1D1D1F;
    --plot-ink-dim: #55555A;
    --sld-line: #6B7280;
    --sld-line-2: #7C8698;
    --sld-ink: #445060;
    --sld-ink-2: #1D1D1F;
    --sld-ink-3: #55555A;
    --sld-fill: #EDEDF1;
    --sld-fill-2: #DDDDE4;
  }
  @media (prefers-color-scheme: light){
    :root:not([data-theme="dark"]){
      --bg: #F5F5F7; --panel: #FFFFFF; --panel-2: #F0F0F3;
      --line: #D2D2D7; --line-soft: #E4E4E8;
      --ink: #1D1D1F; --ink-dim: #55555A; --ink-faint: #86868B;
      --copper: #9A4F14; --copper-bright: #7A3D0E;
      --green: #1F7A3D; --blue: #0066CC; --red: #A3271C; --amber: #8A6A0A;
      --violet: #6B3FA0; --teal: #107070;
      --plot-bg: #FFFFFF; --plot-panel: #F5F5F7;
      --plot-grid: #DCDCE2; --plot-grid-minor: #EDEDF1; --plot-axis: #B8B8C0;
      --plot-ink: #1D1D1F; --plot-ink-dim: #55555A;
      --sld-line: #6B7280; --sld-line-2: #7C8698;
      --sld-ink: #445060; --sld-ink-2: #1D1D1F; --sld-ink-3: #55555A;
      --sld-fill: #EDEDF1; --sld-fill-2: #DDDDE4;
    }
  }
  * { box-sizing: border-box; -webkit-tap-highlight-color: transparent; }
  html, body {
    margin: 0; padding: 0; height: 100%;
    background: var(--bg); color: var(--ink);
    font-family: var(--font);
    /* Base font scales with viewport width so labels/spacing fit any phone:
       ~15px on small phones, growing smoothly to ~17px on large phones/tablets. */
    font-size: calc(16px * var(--uiscale, 1));
    line-height: 1.5;
    overscroll-behavior: none;
  }
  body { display: flex; flex-direction: column; height: 100dvh; }

  /* ---------------------------------------------------------------------
   * DESKTOP-FIRST LAYOUT
   *
   * The app moved to a desktop-Chrome target: these widths, and the fixed
   * (non-vw) font sizes above, are chosen for a monitor, not a phone. The
   * app previously capped every view at 900-1000px centered regardless of
   * window size, which on a real monitor left 300-900px of unused margin on
   * each side and read as the app being stuck at phone width. Two column
   * budgets now apply:
   *   - DIAGRAM views (SLD, TCC, Coordination - anything with a wide table
   *     or drawing) use most of the window, since more width is directly
   *     useful: more of a branched SLD or a wide coordination table is
   *     visible without scrolling.
   *   - READING views (Devices list, forms, Report) stay narrower, because
   *     a line of text that runs edge-to-edge on a 27" monitor is harder to
   *     read, not easier - long lines are a known readability problem.
   * A phone can still load the app (nothing here breaks it), it is simply
   * no longer the design target: see memory / HANDOFF for that decision.
   * --------------------------------------------------------------------- */
  header, .tabs { width: 100%; }
  .app-shell { width: 100%; max-width: 1600px; margin: 0 auto; }
  main { width: 100%; }
  main > .view { max-width: 1600px; margin: 0 auto; width: 100%; }
  /* Reading views get their own, narrower cap. (#view-fault dropped in
 along with the tab itself; #view-devices dropped in rev
     2.49.0 along with ITS tab - the device list now lives in the SLD
     sidebar, whose own width is set by .sld-side below, not this cap. The
     SLD is deliberately NOT in this list, it needs the full width for a
     wide diagram.) */
  #view-report, #view-coord {
    max-width: 1080px;
  }

  @media (min-width: 720px) {
    html, body { font-size: calc(16px * var(--uiscale, 1)); }
    .view { padding: 22px 28px; }
    svg.tcc { max-height: none; }
    .plot-wrap { width: 100%; max-width: 1500px; margin: 0 auto 14px; }
  }

  /* Header */
  header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 10px 14px; background: var(--panel);
    border-bottom: 1px solid var(--line); flex-shrink: 0;
    max-width: 1600px; margin: 0 auto; width: 100%;
  }
  .brand { display: flex; align-items: baseline; gap: 9px; min-width: 0; }
  .brand h1 {
    /* Same scale as AC Conductor and OCPD, off the shared --h1-* tokens.
       --uiscale is kept as a multiplier because this tool alone scales its
       whole UI with the viewport. */
    font-size: calc(var(--h1-size) * var(--uiscale, 1));
    font-weight: var(--h1-weight); margin: 0; letter-spacing: var(--h1-tracking);
    font-family: var(--font);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  }
  .brand .tag {
    font-size: calc(var(--sub-size) * var(--uiscale, 1)); color: var(--ink-dim);
    text-transform: uppercase; letter-spacing: 0.14em; font-weight: 600;
  }
  .header-actions { display: flex; gap: 7px; align-items: center; }

  /* Narrow screens: the header is a single flex row built for a desktop
     toolbar, so at phone width the title was squeezed to nothing by the six
     action buttons beside it and the .tag subtitle wrapped on top of them.
     Two rows instead -- title above, actions below -- and the .tag is
     dropped, since the h1 immediately under it says the same thing and
     there is no room to spend on a restatement. */
  @media (max-width: 767px){
    header { flex-wrap: wrap; row-gap: 8px; }
    .brand { flex: 1 1 100%; min-width: 0; }
    .brand h1 { font-size: calc(17px * var(--uiscale, 1));
      white-space: normal; overflow: visible; text-overflow: clip; }
    .brand .tag { display: none; }
    .header-actions { flex: 1 1 100%; flex-wrap: wrap; gap: 6px; }
  }
  /* Theme toggle -- a real switch (matches the landing page's), same control
     as the other two tools. Sits in the header action row here rather than
     absolutely positioned, because this tool's header is a horizontal
     toolbar, not a centred block. */
  .theme-toggle{flex:none; padding:0; background:none; border:0; cursor:pointer;
    line-height:0; border-radius:var(--r-pill)}
  .theme-toggle:focus-visible{outline:2px solid var(--copper-bright); outline-offset:3px}
  .theme-toggle__track{position:relative; display:inline-flex; align-items:center;
    justify-content:space-between; width:60px; height:32px; padding:0 7px;
    border:1px solid var(--line); border-radius:var(--r-pill); background:var(--bg);
    transition:border-color .3s ease,background-color .3s ease}
  .theme-toggle:hover .theme-toggle__track{border-color:var(--ink-dim)}
  .theme-toggle__icon{width:15px; height:15px; z-index:1; display:block;
    transition:color .3s ease,opacity .3s ease}
  .theme-toggle__icon svg{width:100%; height:100%; display:block}
  .theme-toggle__icon--sun{color:var(--ink-dim); opacity:.5}
  .theme-toggle__icon--moon{color:var(--copper-bright); opacity:1}
  .theme-toggle__knob{position:absolute; top:3px; left:3px; width:24px; height:24px;
    border-radius:50%; background:var(--panel); border:1px solid var(--line);
    box-shadow:0 2px 6px rgba(0,0,0,.35); transform:translateX(28px);
    transition:transform .34s cubic-bezier(.22,.61,.36,1),background-color .3s ease}
  :root[data-theme="light"] .theme-toggle__knob{transform:translateX(0)}
  :root[data-theme="light"] .theme-toggle__icon--sun{opacity:1; color:var(--copper-bright)}
  :root[data-theme="light"] .theme-toggle__icon--moon{opacity:.5; color:var(--ink-dim)}
  @media (prefers-color-scheme:light){
    :root:not([data-theme="dark"]) .theme-toggle__knob{transform:translateX(0)}
    :root:not([data-theme="dark"]) .theme-toggle__icon--sun{opacity:1; color:var(--copper-bright)}
    :root:not([data-theme="dark"]) .theme-toggle__icon--moon{opacity:.5; color:var(--ink-dim)}
  }
  @media print{ .theme-toggle{display:none !important} }

 /*.disclaimer-strip /.disclaimer-chip removed in - the
     design-aid notice is on every printed report (js/report.js DISCLAIMER),
     which is the document actually handed off; a permanent banner over every
     tab repeated it with no added visibility. */

  /* Tabs */
  .tabs {
    display: flex; background: var(--panel); border-bottom: 1px solid var(--line);
    flex-shrink: 0; max-width: 1600px; margin: 0 auto; width: 100%;
  }
  .tab {
    flex: 1; text-align: center; padding: 13px 4px;
    font-size: calc(15px * var(--uiscale, 1));
    color: var(--ink-dim); background: none; border: none; cursor: pointer;
    border-bottom: 2px solid transparent; font-weight: 600; letter-spacing: 0.03em;
    font-family: var(--font);
  }
  .tab.active { color: var(--copper-bright); border-bottom-color: var(--copper); }

  /* Main scroll area */
  main { flex: 1; overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .view { display: none; padding: 14px; }
  .view.active { display: block; }

  /* Plot */
  .plot-wrap {
    background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
    padding: 8px; margin-bottom: 14px;
  }
  svg.tcc { width: 100%; height: auto; display: block; touch-action: none; }
  .plot-drag-bar { padding: 4px 2px 8px; }
  .tune-row { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .tune-select { padding: 7px 10px; font-size: 12.5px; background: var(--bg); color: var(--ink); border: 1px solid var(--line); border-radius: 6px; font-family: var(--font); max-width: 45%; }
  .tune-field { font-size: 11px; color: var(--ink-dim); }
  .tune-btn { min-width: 42px; min-height: 38px; font-size: 20px; padding: 0; font-weight: 700; }
  .tune-val { font-family: var(--mono); font-size: 15px; font-weight: 700; min-width: 44px; text-align: center; }
  .tune-fixed { font-size: 11.5px; color: var(--ink-faint); font-style: italic; }
  .dev-volt { font-size: 10.5px; color: var(--copper); font-family: var(--mono); font-weight: 600; margin-left: 6px; padding: 1px 6px; border: 1px solid var(--line); border-radius: 4px; }
  .volt-warn { background: rgba(224,180,60,0.08); border: 1px solid rgba(224,180,60,0.4); border-radius: 8px; padding: 12px 14px; margin-bottom: 12px; font-size: 13px; color: var(--amber); }
  .volt-warn b { display: block; margin-bottom: 6px; }
  .volt-warn ul { margin: 0 0 6px; padding-left: 18px; }
  .volt-warn li { margin: 3px 0; color: var(--ink); font-size: 12.5px; }
  .volt-warn-hint { font-size: 11px; color: var(--ink-dim); }
  .coord-fix { background: var(--panel-2); border: 1px solid var(--copper); border-radius: 8px; padding: 13px 15px; margin-bottom: 14px; }
  .coord-fix-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--copper-bright); font-weight: 700; margin-bottom: 7px; }
  .coord-fix-body { font-size: 13px; color: var(--ink); line-height: 1.5; margin-bottom: 11px; }
  .coord-fix-hint { font-size: 11px; color: var(--ink-dim); margin-top: 9px; }
  /* Smart Coordinate busy state. On the web build the study engine is a
     network call away (js/api.js): the first solve of a study can need one or
     more round trips to actually converge (see coordinate-tree.js), and
     without this the button just looked stuck for that whole time. */
  button.btn.primary.is-busy { display: inline-flex; align-items: center; justify-content: center; gap: 8px; }
  .coord-run-spinner { width: 14px; height: 14px; flex: 0 0 auto; border-radius: 50%;
    border: 2px solid rgba(26,18,6,0.35); border-top-color: #1a1206;
    animation: coord-run-spin 0.75s linear infinite; }
  @keyframes coord-run-spin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) { .coord-run-spinner { animation-duration: 2.4s; } }
  .pair-result { font-size: 12.5px; font-family: var(--mono); padding: 9px 12px; border-radius: 6px; margin-bottom: 12px; }
  .pair-result.ok { background: rgba(95,191,122,0.1); color: var(--green); border: 1px solid rgba(95,191,122,0.35); }
  .pair-result.bad { background: rgba(217,89,76,0.1); color: var(--red); border: 1px solid rgba(217,89,76,0.35); }
  .edit-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
  .type-switch { display: flex; flex-direction: column; gap: 3px; }
  .type-switch label { font-size: 10px; color: var(--ink-faint); text-transform: uppercase; letter-spacing: 0.06em; }
  .type-switch select { padding: 6px 8px; font-size: 12px; background: var(--bg); color: var(--copper-bright); border: 1px solid var(--copper); border-radius: 6px; font-family: var(--font); }
  .gnd-section { border-top: 1px solid var(--line); margin-top: 10px; padding-top: 10px; }
  .gnd-title { font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-dim); margin-bottom: 8px; }
  .field-hint { font-size: 11px; color: var(--ink-faint); margin-top: 6px; line-height: 1.4; }
 /*.fault-intro removed in along with the Fault tab that was its
     only user - the explanatory panel it styled has no equivalent on the
     SLD, where the annotations speak for themselves. */
  .tune-hint { font-size: 10.5px; color: var(--ink-faint); margin-top: 5px; }
  .tune-ba { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 7px; font-size: 11.5px; font-family: var(--mono); }
  .ba-item { color: var(--ink-dim); }
  .ba-item s { color: var(--ink-faint); }
  .ba-item b.ok { color: var(--green); }
  .ba-item b.bad { color: var(--red); }
  .tune-revert { font-size: 12px; padding: 6px 12px; min-height: 38px; background: var(--panel); border-color: var(--copper); color: var(--copper-bright); font-weight: 600; }
  .hidden { display: none !important; }
  .tune-revert.hidden { display: none; }
  .trace-instr { font-size: 12px; color: var(--ink-dim); margin: 8px 0; line-height: 1.5; padding: 8px 10px; background: var(--panel-2); border-radius: 6px; }
  .trace-instr b { color: var(--copper-bright); }
  /* Fullscreen tracer: a large modal so the datasheet renders at high resolution
     and points are easy to place. */
  /* Full-screen capture. The canvas previously sat inside a scrolling form, so
     on a phone its lower half fell below the viewport and those curves could
     not be tapped at all. This lays the tracer out as a fixed full-screen
     column - controls at top and bottom, canvas taking the space between - so
     every part of the plot is always reachable. */
  .modal.tracer-modal { position: fixed; inset: 0; max-width: 100vw; width: 100vw;
    /* 100vh on a phone browser includes the strip behind the address bar, so a
       row pinned to the bottom sits underneath it and cannot be tapped. dvh
       tracks the ACTUALLY visible height; vh stays as the fallback. */
    max-height: 100vh; height: 100vh;
    max-height: 100dvh; height: 100dvh;
    margin: 0; border-radius: 0;
    display: flex; flex-direction: column; overflow: hidden;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom, 0px)); }
  .modal.tracer-modal h3 { flex: 0 0 auto; margin: 0 0 6px; }
  .modal.tracer-modal .tracer-head { flex: 0 0 auto; overflow-y: auto; max-height: 38vh; }
  .modal.tracer-modal #trace-stage { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
  /* The canvas sits inside a .field wrapper; that wrapper must itself grow and
     allow shrinking, or the canvas collapses to a sliver. */
  .modal.tracer-modal .field.canvas-field { flex: 1 1 auto; display: flex;
    flex-direction: column; min-height: 0; }
  .modal.tracer-modal .trace-canvas-big { flex: 1 1 auto; height: auto; min-height: 120px; }
  .modal.tracer-modal .btn-row { flex: 0 0 auto; }
  .trace-canvas-big { position: relative; overflow: hidden; width: 100%; height: 62vh; border: 1px solid var(--line);
    border-radius: 6px; overflow: hidden; background: #fff; touch-action: none; cursor: crosshair; }
  .trace-canvas-big canvas { position: absolute; top: 0; left: 0; transform-origin: 0 0; }
  .trace-setup { background: var(--panel-2); border: 1px solid var(--line); border-radius: 8px; padding: 7px 10px; margin: 4px 0 2px; }
  .trace-setup-head { font-size: 11.5px; font-weight: 600; color: var(--ink-dim); cursor: pointer; list-style: none; }
  .trace-setup-head::-webkit-details-marker { display: none; }
  .trace-setup-head::before { content: '▸ '; color: var(--copper-bright); }
  details[open] > .trace-setup-head::before { content: '▾ '; }
  .trace-setup-body { font-size: 11.5px; color: var(--ink-dim); line-height: 1.55; margin-top: 7px; }
  .trace-setup-body a { color: var(--copper-bright); text-decoration: none; font-weight: 600; }
  .trace-setup-body a:hover { text-decoration: underline; }
  .trace-setup-body code { background: var(--panel); padding: 1px 4px; border-radius: 3px; font-size: 10.5px; color: var(--ink); }
  .trace-links { margin-top: 3px; }
  .trace-links a { color: var(--copper-bright); text-decoration: none; font-weight: 600; }
  .trace-links a:hover { text-decoration: underline; }
  .trace-links code { background: var(--panel); padding: 1px 4px; border-radius: 3px; font-size: 10.5px; color: var(--ink); }
  .trace-setup-note { font-size: 10.5px; color: var(--ink-faint); margin-top: 6px; line-height: 1.4; }
  #trace-canvas { max-width: 100%; display: block; margin: 0 auto; cursor: crosshair; touch-action: none; }
  .plot-readout { font-size: calc(14px * var(--uiscale, 1)); color: var(--ink-dim); font-family: var(--mono); padding: 6px 8px; background: var(--panel-2); border-radius: 6px; margin-bottom: 6px; min-height: 30px; line-height: 1.5; }
  .plot-readout b { color: var(--copper-bright); }

  /* Device list */
  .section-head {
    display: flex; align-items: center; justify-content: space-between;
    margin: 4px 2px 10px;
  }
  .section-head h2 {
    font-size: calc(15px * var(--uiscale, 1)); text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--ink-dim); margin: 0; font-weight: 700;
  }

  /* collapsible secondary sections on the Coordination tab.
     Built on native <details>/<summary> rather than a JS show/hide: it is
     keyboard-accessible and screen-reader-correct for free, it survives the
     wholesale innerHTML replacement renderCoord() does on every refresh
     (the open/closed state is re-applied from the markup, not from a
     listener that would need rebinding), and - the reason that actually
     matters here - a collapsed section can be force-opened before printing
     so a printed Coordination tab still shows everything regardless of what
     was collapsed on screen. That force-open is done in JS on beforeprint
     (js/main.js), NOT here: Chrome hides un-open <details> content through
     content-visibility on the UA slot, which no author `display` rule can
     override, so a CSS-only attempt would silently print blank sections. */
  details.coord-sec { margin: 0 0 10px; }
  details.coord-sec > summary {
    display: flex; align-items: center; gap: 8px; cursor: pointer;
    margin: 4px 2px 10px; list-style: none; user-select: none;
  }
  details.coord-sec > summary::-webkit-details-marker { display: none; }
  /* Disclosure caret drawn here rather than relying on the UA marker, which
     is not stylable across engines and sits at a different offset in each. */
  details.coord-sec > summary::before {
    content: '▸'; color: var(--ink-faint); font-size: 11px; line-height: 1;
    transition: transform .12s ease; flex: 0 0 auto;
  }
  details.coord-sec[open] > summary::before { transform: rotate(90deg); }
  details.coord-sec > summary h2 {
    font-size: calc(15px * var(--uiscale, 1)); text-transform: uppercase; letter-spacing: 0.1em;
    color: var(--ink-dim); margin: 0; font-weight: 700;
  }
  details.coord-sec > summary:hover h2,
  details.coord-sec > summary:hover::before { color: var(--ink); }
  /* One-line "what's inside" hint, so a collapsed section is still
     self-describing - a bare uppercase heading is not enough to tell someone
     whether it is worth opening. */
  .coord-sec-note { font-size: 11px; color: var(--ink-faint); font-weight: 400;
    text-transform: none; letter-spacing: 0; margin-left: auto; }
  @media print {
    details.coord-sec > summary::before { display: none; }
  }
  .device-card {
    background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
    padding: 12px 13px; margin-bottom: 9px; display: flex; align-items: center; gap: 11px;
  }
  .device-info { flex: 1; min-width: 0; cursor: default; }
  .device-name { font-weight: 600; font-size: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* a full settings summary ("100A · LT 0.4×/0.5s ST 10×/0.05s")
     used to WRAP, so a card's height depended on how much that device's kind
     happens to say - a breaker ran 3 lines while a cable ran 1, and the
     whole list read as "out of control" as device count grew (KM's own
     words). Clamped to one line with an ellipsis so every card is the SAME
     height regardless of kind; the full text is still available on hover
     via showDevPopover() below rather than lost. */
  .device-sub { font-size: 11.5px; color: var(--ink-dim); font-family: var(--mono); margin-top: 1px;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* stacked vertically (lock above edit/delete) to mirror the
     reorder column on the opposite side of the card, per KM's "align all
     the 4 small signs" - both side columns are now the same shape (a
     narrow vertical stack), not one stacked and one side-by-side. */
  .device-actions { display: flex; flex-direction: column; gap: 4px; flex-shrink: 0; }
  .reorder { display: flex; flex-direction: column; gap: 3px; flex-shrink: 0; }
  /* Floating popover for the full device summary - one shared element,
     positioned beside whichever card is hovered (see showDevPopover()).
     pointer-events:none: it's read-only text, so there's no need to worry
     about the cursor crossing a gap into it before the card's mouseleave
     fires - simpler than the usual "did the mouse enter the tooltip"
     hover-bridge logic a clickable popover would need. */
  .dev-popover { position: fixed; z-index: 500; max-width: 300px;
    background: var(--panel-2); border: 1px solid var(--line); border-radius: 8px;
    padding: 10px 12px; box-shadow: 0 10px 28px rgba(0,0,0,.45);
    font-size: 12px; color: var(--ink); line-height: 1.55; pointer-events: none;
    opacity: 0; transform: translateY(3px); transition: opacity .1s ease, transform .1s ease; }
  .dev-popover.show { opacity: 1; transform: translateY(0); }
  .dev-popover .dev-popover-name { font-weight: 600; margin-bottom: 3px; }
  .dev-popover .dev-popover-name .dev-popover-kind { font-weight: 400; color: var(--ink-faint);
    font-size: 10px; text-transform: uppercase; letter-spacing: .05em; margin-left: 6px; }
  .dev-popover .dev-popover-sub { font-family: var(--mono); color: var(--ink-dim); white-space: normal; }
  button.btn.xs { min-width: 30px; min-height: 26px; padding: 2px; font-size: calc(12px * var(--uiscale, 1)); line-height: 1; }
  button.btn.xs:disabled { opacity: 0.3; }

  /* Buttons - big touch targets */
  button.btn {
    font-family: var(--font); font-size: calc(15px * var(--uiscale, 1)); font-weight: 600;
    padding: 9px 14px; border-radius: 7px; border: 1px solid var(--line);
    background: var(--panel-2); color: var(--ink); cursor: pointer;
    min-height: 40px; letter-spacing: 0.02em;
  }
  button.btn:active { background: var(--line); }
  /* Primary CTAs get the site's pill shape; toolbar/icon buttons (.sm/.icon,
     used a dozen-deep in the header) deliberately stay squared-off -- a
     whole row of pills reads as a row of tags, not a toolbar, and nothing
     on the landing page has that density to draw an example from. */
  button.btn.primary { background: var(--copper); border-color: var(--copper); color: #1a1206;
    border-radius: var(--r-pill); padding-inline: 20px; }
  button.btn.primary:active { background: var(--copper-bright); }
  button.btn.icon { min-width: 40px; padding: 9px; text-align: center; }
  button.btn.sm { font-size: calc(13.5px * var(--uiscale, 1)); padding: 7px 11px; min-height: 34px; }
  .btn-row { display: flex; gap: 9px; margin-top: 4px; }
  .btn-row .btn { flex: 1; }

  /* Lock */
  .lock { font-size: 16px; }
  .lock.locked { color: var(--copper-bright); }
  .lock.unlocked { color: var(--ink-faint); }
  .lockbtn { font-size: 15px; }
  .lockbtn.locked { background: var(--copper); border-color: var(--copper-bright); box-shadow: 0 0 0 1px var(--copper-bright); }
  .lockbtn.unlocked { background: transparent; border-color: var(--line); border-style: dashed; opacity: 0.7; }

  /* Verdict banner */
  .verdict {
    border-radius: 8px; padding: 13px 15px; margin-bottom: 14px;
    border: 1px solid; font-weight: 600;
  }
  .verdict.ok { background: rgba(95,191,122,0.09); border-color: rgba(95,191,122,0.4); color: var(--green); }
  .verdict.bad { background: rgba(217,89,76,0.09); border-color: rgba(217,89,76,0.4); color: var(--red); }
  .verdict.none { background: var(--panel); border-color: var(--line); color: var(--ink-dim); }
  .verdict .big { font-size: 16px; }
  .verdict .detail { font-size: 12px; font-weight: 400; margin-top: 4px; color: var(--ink-dim); font-family: var(--mono); }

  /* Table */
  table { width: 100%; border-collapse: collapse; font-size: 13px; }
  .table-wrap {
    background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
    overflow: hidden; margin-bottom: 14px;
  }
  th, td { padding: 9px 11px; text-align: left; border-bottom: 1px solid var(--line-soft); }
  th { background: var(--panel-2); color: var(--amber); font-size: 10.5px; text-transform: uppercase; letter-spacing: 0.07em; font-weight: 700; }
  td { font-family: var(--mono); font-size: 12.5px; }
  td.dev { font-family: var(--font); }
  tr:last-child td { border-bottom: none; }
  .muted { color: var(--ink-faint); }

  /* Checks */
  .check { display: flex; gap: 10px; padding: 10px 12px; align-items: flex-start; border-bottom: 1px solid var(--line-soft); }
  .check:last-child { border-bottom: none; }
  .check-dot { width: 8px; height: 8px; border-radius: 50%; margin-top: 6px; flex-shrink: 0; }
  .check-dot.pass { background: var(--green); }
  .check-dot.warn { background: var(--amber); }
  .check-dot.fail { background: var(--red); }
  .check-dot.info { background: var(--ink-faint); }
  .check-body { flex: 1; }
  .check-msg { font-size: 13px; }
  .check-cite { font-size: 10.5px; color: var(--ink-faint); font-family: var(--mono); margin-top: 2px; }

  /* Modal / form */
  .modal-back {
    position: fixed; inset: 0; z-index: 50;
    display: none; align-items: flex-end;
    /* KM - "device and edit windows are not movable, so you
       need to close them to see the back." Dragging (below) is the real
       fix, but the old rgba(0,0,0,0.6) backdrop was also darker than it
       needed to be for a form that is usually a quick edit, not a true
       "everything else is unavailable" state - lightened outright here,
       then dropped further still (.modal-back-dimmed) once a dialog has
       actually been dragged, on the theory that dragging IS the user
       telling us they want to see behind it. Transition matches the drag
       rather than jumping. */
    background: rgba(0,0,0,0.4);
    /* DESIGN.md (the site's own "Lumina Editorial" design system) scopes
       glassmorphism specifically to overlays: "a subtle backdrop blur...
       to maintain the light feel while isolating the user's focus" -- so
       blur is added here, but the carefully-tuned opacity values above
       (see the comment above this block) are left exactly as they were. */
    backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px);
    transition: background 0.15s ease;
  }
  .modal-back.show { display: flex; }
  .modal-back.modal-back-dimmed { background: rgba(0,0,0,0.18); }
  /* Drag affordance on the title area - the actual handle detection is in
     JS (isDragHandle), this is purely the visual cue. */
  /* was `.modal > h3, .modal > .edit-head` (direct-child) -
     openModal() wraps a form's content in .modal-scroll whenever it ends
     in a .btn-row footer (nearly every one of the 15 forms, via
     formButtons()), which puts the h3/.edit-head one level deeper than
     a direct child of .modal. The drag JS itself uses closest() so it
     still worked either way, but this cursor affordance silently stopped
     showing for almost every dialog - the only visible cue that dragging
     is possible - which is why KM couldn't tell these were movable at
     all. Descendant selector fixes it; still only ever matches the one
     h3/.edit-head a modal actually has. */
  .modal h3, .modal .edit-head { cursor: move; }
  .modal .edit-head select, .modal .edit-head button { cursor: pointer; }
  .modal.dragging { cursor: grabbing; user-select: none; }
  /* .modal.tracer-modal is intentionally excluded from all of the above -
     it is position:fixed; inset:0 full-viewport by design and has nowhere
     to move to (see isDragHandle's own guard). */
  /* A form taller than the sheet used to push its Save button past the bottom
     of the screen, where it could not be reached at all - the trace attached
     correctly but the device could never be committed. The sheet is now a flex
     column: the fields scroll, the action row stays pinned and visible. */
  .modal {
    background: var(--panel); width: 100%; max-height: 90dvh;
    display: flex; flex-direction: column; overflow: hidden;
    border-radius: 16px 16px 0 0; border-top: 1px solid var(--line);
    padding: 18px 16px calc(18px + env(safe-area-inset-bottom));
  }
  /* Everything except the final action row scrolls. */
  .modal > *:not(.btn-row) { flex: 0 0 auto; }
  .modal > .modal-scroll { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
  .modal > .btn-row:last-child { flex: 0 0 auto; margin-top: 12px; padding-top: 12px;
    border-top: 1px solid var(--line); background: var(--panel); }
  @media (min-width: 720px) {
    /* On desktop the modal is a centered dialog, not a bottom sheet. */
    .modal-back { align-items: center; justify-content: center; }
    .modal { max-width: 640px; max-height: 82vh; border-radius: 12px; border: 1px solid var(--line); margin: 0 16px; }
  }
  /* AI review panel. Deliberately visually distinct from the solver's
     own output - advisory text must never read as an engine verdict. */
  .ai-panel {
    margin-top: 10px; padding: 12px 14px; border-radius: 8px;
    background: var(--panel-2); border: 1px dashed var(--copper);
  }
  .ai-panel-head { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
  .ai-panel-head b { color: var(--copper-bright); font-size: 12.5px; }
  .ai-badge {
    font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em;
    padding: 2px 6px; border-radius: 4px; background: rgba(224,180,60,0.15);
    color: var(--amber); border: 1px solid rgba(224,180,60,0.4);
  }
  .ai-body { font-size: 12.5px; line-height: 1.6; color: var(--ink); white-space: pre-wrap; }
  .ai-sug { border-top: 1px solid var(--line); padding: 8px 0 4px; }
  .ai-sug:last-child { padding-bottom: 0; }
  .ai-sug-why { font-size: 11.5px; color: var(--ink-dim); margin: 3px 0 6px; }
  .ai-err {
    color: var(--red); font-size: 12px; line-height: 1.6; margin-top: 4px;
    padding: 9px 11px; border-radius: 7px;
    background: rgba(217,89,76,0.08); border: 1px solid rgba(217,89,76,0.35);
  }
  .ai-key-row { display: flex; gap: 6px; align-items: center; margin-top: 8px; flex-wrap: wrap; }
  .ai-key-row input { flex: 1 1 180px; min-width: 0; }
  /* Which provider answered. Named on every state, because advice you cannot
     attribute to a model is advice you cannot weigh. */
  .ai-provider {
    margin-left: auto; display: inline-flex; align-items: center; gap: 6px;
    font-size: 10.5px; font-family: var(--mono); color: var(--ink-dim);
    padding: 2px 8px; border-radius: 999px;
    background: var(--panel); border: 1px solid var(--line);
  }
  .ai-provider-dot {
    width: 6px; height: 6px; border-radius: 50%; background: var(--copper-bright);
    box-shadow: 0 0 0 3px rgba(224,180,60,0.15);
  }
  .ai-loading { display: flex; align-items: center; gap: 10px; }
  .ai-spinner {
    width: 15px; height: 15px; flex: 0 0 auto; border-radius: 50%;
    border: 2px solid var(--line); border-top-color: var(--copper-bright);
    animation: ai-spin 0.75s linear infinite;
  }
  @keyframes ai-spin { to { transform: rotate(360deg); } }
  @media (prefers-reduced-motion: reduce) {
    .ai-spinner { animation-duration: 2.4s; }
  }
  .ai-sub { font-size: 11px; color: var(--ink-faint); margin-top: 4px; font-family: var(--mono); }
  .ai-note {
    font-size: 11.5px; color: var(--ink-dim); margin-top: 8px; padding: 7px 10px;
    border-radius: 6px; background: var(--panel); border: 1px solid var(--line);
  }
  .ai-foot {
    margin-top: 10px; padding-top: 8px; border-top: 1px solid var(--line);
    font-size: 10.5px; font-family: var(--mono); color: var(--ink-faint);
  }
  .ai-sug-head { font-size: 12px; display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
  .ai-sug-head code {
    font-family: var(--mono); font-size: 11px; padding: 1px 5px; border-radius: 4px;
    background: var(--panel); border: 1px solid var(--line);
  }
  .ai-sev {
    font-size: 9.5px; text-transform: uppercase; letter-spacing: 0.07em; font-weight: 700;
    padding: 2px 6px; border-radius: 4px; border: 1px solid;
  }
  .ai-sev-high .ai-sev { color: var(--red); border-color: rgba(217,89,76,0.45); background: rgba(217,89,76,0.10); }
  .ai-sev-medium .ai-sev { color: var(--amber); border-color: rgba(224,180,60,0.45); background: rgba(224,180,60,0.10); }
  .ai-sev-low .ai-sev, .ai-sev-note .ai-sev { color: var(--ink-dim); border-color: var(--line); background: var(--panel); }
  .ai-sev-caution .ai-sev { color: var(--amber); border-color: rgba(224,180,60,0.45); background: rgba(224,180,60,0.10); }
  .ai-sug ul { margin: 6px 0 0 16px; font-size: 11.5px; color: var(--ink-dim); line-height: 1.6; }

  /* SLD right-click menu. z-index above .modal-back (50) since a
     bus's "Add feeder" action opens the bus-edit modal FROM a menu click -
     the menu itself is gone by then (closeSldCtxMenu runs first), but it
     still needs to sit above the diagram/scene while open. Fixed positioning
     with an inline left/top (set in JS from the click coordinates) rather
     than anchoring to the hit element, since the same menu code runs inside
     the detached window too and has no shared layout to anchor to. */
  .sld-ctxmenu {
    position: fixed; z-index: 60; min-width: 180px;
    background: var(--panel); border: 1px solid var(--line); border-radius: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.45); padding: 4px; font-size: 13px;
  }
  .sld-ctxmenu-item {
    display: block; width: 100%; text-align: left; background: none; border: none;
    color: var(--ink); padding: 8px 10px; border-radius: 5px; cursor: pointer; font-size: inherit;
  }
  .sld-ctxmenu-item:hover { background: var(--panel-2); }
  .sld-ctxmenu-item.danger { color: var(--red); }
  .sld-ctxmenu-sep { height: 1px; background: var(--line); margin: 4px 2px; }
  .modal h3 { margin: 0 0 14px; font-size: 17px; }
  .field { margin-bottom: 13px; }
  .field label { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--ink-dim); margin-bottom: 5px; font-weight: 600; }
  .field input, .field select, .field textarea {
    width: 100%; padding: 11px 12px; font-size: 15px; font-family: var(--font);
    background: var(--bg); color: var(--ink); border: 1px solid var(--line);
    border-radius: 7px; -webkit-appearance: none; appearance: none;
  }
  .field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--copper); outline-offset: 1px; border-color: var(--copper); }
  .field textarea { resize: vertical; }
  /* a field showing a value COMPUTED from another field (e.g. FLA
     derived from HP), not directly typed - same idea as [disabled] but kept
     readable rather than greyed to near-invisibility, since the number is
     still meaningful, just not the one to edit here. */
  .field input.readonly-derived { background: var(--panel-2); color: var(--ink-dim); cursor: default; }
  .field-row { display: flex; gap: 10px; }
  .field-row .field { flex: 1; }
  select { background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'><path d='M2 4l4 4 4-4' stroke='%238a97a6' stroke-width='1.5' fill='none'/></svg>"); background-repeat: no-repeat; background-position: right 12px center; padding-right: 32px; }

  .empty { text-align: center; color: var(--ink-faint); padding: 40px 20px; font-size: 13px; }
  .legend { display: flex; flex-wrap: wrap; gap: 12px; padding: 6px 4px 2px; }
  .legend-item { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--ink-dim); }
  .legend-line { width: 16px; height: 3px; border-radius: 2px; }
  .axis-note { font-size: 10px; color: var(--ink-faint); text-align: right; padding: 2px 4px 0; font-family: var(--mono); }
  /* REVISED (KM: same "badly organized" complaint as the SLD toolbar, plus
     the zoom controls specifically felt uncomfortable - see interact.js).
     justify-content:space-between used to spread path-pick / axis-note /
     Reset-view across the full row - fine with all three present, but
     path-pick is HIDDEN for the common single-path study, so the row went
     from 3 unevenly-weighted stops to a sparse "text ... button" with a
     big gap. Switched to the same flex-start-plus-spacer pattern as the SLD
     header row (.sld-toolbar-spacer) so the right-hand block (axis-note +
     the zoom cluster) sits in the same place whether path-pick exists or
     not, instead of reflowing based on it. */
  .plot-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
  .plot-foot-spacer { flex: 1 1 auto; }
  .plot-size-label { font-size: 10px; color: var(--ink-faint); font-family: var(--mono); margin-right: 2px; }
  /* Zoom controls as one cluster: the hint text that used to be buried at
     10px inside .axis-note (easy to never notice, same weight as the
     decorative axis-units text next to it) now sits directly on the
     control it explains, at the same size as the buttons beside it. */
  .plot-zoom { display: flex; align-items: center; gap: 6px; }
  .plot-zoom-hint { font-size: 10px; color: var(--ink-faint); font-family: var(--mono); white-space: nowrap; }
  .btn.xs { padding: 3px 8px; font-size: 11px; min-height: 28px; }
  .plot-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 40; }
  .plot-overlay.hidden { display: none; }
  .pair-pick { display: flex; align-items: flex-end; gap: 10px; margin-bottom: 14px; }
  .pair-pick .field { flex: 1; margin-bottom: 0; }
  .pair-arrow { color: var(--copper); font-size: 18px; padding-bottom: 10px; }
  .smartset { border: 1px solid var(--line); border-radius: 8px; padding: 10px; margin-bottom: 13px; background: var(--panel-2); }
  #toast {
    position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%) translateY(20px);
    background: var(--copper); color: #1a1206; font-weight: 600; font-size: 13px;
    padding: 11px 18px; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,0.5);
    opacity: 0; pointer-events: none; transition: opacity 0.25s, transform 0.25s; z-index: 100;
    max-width: 90vw; text-align: center;
  }
  #toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

  /* ============================ REPORT =====================================
     The report itself - its layout, its tables, its signature block and all of
     its print styling - is shared/report-kit.css, loaded ahead of this file by
     both builds. What stays here is only what names THIS app's chrome: which
     of its own views and controls disappear when the report is printed.
     ========================================================================= */
  @media print {
    header, .tabs, .no-print, #toast { display: none !important; }
    html, body { background: #fff !important; color: #111 !important; height: auto !important; }
    main { overflow: visible !important; }
    .view { display: none !important; padding: 0 !important; }
    .view#view-report { display: block !important; }
  }
  .axis-summary { font-size: 12px; font-weight: 600; color: var(--ink-dim); cursor: pointer; padding: 4px 0; }
  .modal.tracer-modal .tracer-head { max-height: 34vh; }
  .modal.tracer-modal details.tracer-head[open] { max-height: 34vh; overflow-y: auto; }
  .modal.tracer-modal details.tracer-head:not([open]) { max-height: none; overflow: visible; }

  /* Detected-curve list. Selecting from a list replaces tapping the curve on
     the canvas: at fit-to-window a stroke is under one screen pixel, which is
     not a realistic target on a phone even with a pen. These are ordinary
     buttons, sized for a finger. */
  /* The curve list sits OVER the plot rather than beside it. Stacking them made
     the canvas collapse to a sliver and pushed the action buttons off-screen -
     the list is the thing you read once and then want out of the way, so it
     overlays and collapses to its header. */
  .curve-list { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3;
    max-height: 58%; display: flex; flex-direction: column;
    border-top: 1px solid var(--line); border-radius: 10px 10px 0 0;
    background: rgba(18,20,26,.97); box-shadow: 0 -6px 18px rgba(0,0,0,.45); }
  .curve-list.collapsed { max-height: none; }
  .curve-list.collapsed .curve-list-body { display: none; }
  .curve-list-head { display: flex; align-items: center; justify-content: space-between;
    padding: 9px 12px; font-size: 12px; font-weight: 600; color: var(--ink);
    cursor: pointer; user-select: none; border-bottom: 1px solid var(--line); }
  .curve-list.collapsed .curve-list-head { border-bottom: none; }
  .curve-list-toggle { color: var(--ink-dim); font-size: 11px; }
  .curve-list-body { overflow-y: auto; -webkit-overflow-scrolling: touch; }
  .curve-row { display: flex; align-items: center; gap: 10px; width: 100%;
    padding: 11px 12px; background: none; border: none; border-bottom: 1px solid var(--line);
    color: var(--ink); font-size: 13px; text-align: left; cursor: pointer; }
  .curve-row:last-child { border-bottom: none; }
  .curve-row:hover { background: rgba(255,255,255,.04); }
  .curve-row.selected { background: rgba(217,83,79,.16); box-shadow: inset 3px 0 0 #d9534f; }
  .curve-num { flex: 0 0 26px; height: 26px; border-radius: 13px; background: var(--panel);
    color: var(--ink-dim); font-weight: 700; font-size: 12px; display: flex;
    align-items: center; justify-content: center; }
  .curve-row.selected .curve-num { background: #d9534f; color: #fff; }
  .curve-range { flex: 1 1 auto; font-variant-numeric: tabular-nums; }
  .curve-pts { flex: 0 0 auto; color: var(--ink-dim); font-size: 11px; }
  .verdict.warn { border-color: #b8860b; background: rgba(184,134,11,.10); }
  .verdict.warn .big { color: #e0a800; }
  .label-bar { display: flex; align-items: center; justify-content: space-between; gap: 8px;
    padding: 8px 10px; background: rgba(184,134,11,.12); border-bottom: 1px solid var(--line);
    font-size: 11.5px; color: var(--ink-dim); }
  .btn.xs { padding: 4px 8px; font-size: 11px; }
  .curve-num { padding: 0 6px; min-width: 26px; width: auto; }
  .curve-row-wrap { display: flex; align-items: stretch; border-bottom: 1px solid var(--line); }
  .curve-row-wrap:last-child { border-bottom: none; }
  .curve-row-wrap .curve-row { border-bottom: none; flex: 1 1 auto; }
  .curve-edit { flex: 0 0 44px; background: none; border: none; border-left: 1px solid var(--line);
    color: var(--ink-dim); font-size: 15px; cursor: pointer; }
  .curve-edit:hover { background: rgba(255,255,255,.06); color: var(--ink); }
  .curve-range small { color: var(--ink-dim); font-size: 10.5px; }

  /* Show that the plot can be dragged, and that it IS being dragged. */
  #trace-canvas { cursor: grab; touch-action: none; }
  #trace-canvas.dragging { cursor: grabbing; }
  #trace-canvas.marking { cursor: crosshair; }
  .modal.tracer-modal .btn-row.trace-actions { flex: 0 0 auto; margin-top: 8px; gap: 8px; }
  .modal.tracer-modal .btn-row.trace-actions .btn { flex: 1 1 0; }
  .btn[disabled] { opacity: .45; cursor: not-allowed; }


  /* ---- Device list: bigger touch targets, calmer layout -------------------
     The reorder arrows and the lock/edit icons were small enough to need a
     careful aim on a phone. 40px matches this app's own .btn min-height scale
     (button.btn is min-height:40px elsewhere in this file) - raised from the
     previous 34px floor, short of the 44px used on the two sizing tools since
     this app's own CLAUDE.md targets desktop Chrome, not mobile, and a
     device list can run to a dozen+ rows where 44px-tall reorder buttons
     would meaningfully inflate scroll length for limited real benefit on a
     pointer-driven desktop session. Nothing about the behaviour changes -
     only the target size and spacing. */
  .device-card { gap: 10px; padding: 10px 12px; align-items: center; }
  .device-card .reorder { display: flex; flex-direction: column; gap: 3px; }
  /* Reorder column stays the SAME width as the action-icon column opposite
     it (below) - two matching 40px-wide vertical stacks flanking the
     name/info, not two differently sized columns. */
  .device-card .reorder .btn.icon.xs { width: 40px; height: 30px; font-size: 11px; padding: 0;
    display: flex; align-items: center; justify-content: center; }
  .device-card .device-actions { display: flex; flex-direction: column; gap: 4px; align-items: center; }
  .device-card .device-actions .btn.icon.sm { width: 40px; height: 40px; font-size: 15px; padding: 0;
    display: flex; align-items: center; justify-content: center; border-radius: 8px; }
  .device-card .device-sub { font-size: 11.5px; line-height: 1.45; margin-top: 2px; }

  /* The plot hint is guidance, not a result - let the readout dominate once
     there is something to read. */
  .plot-readout { font-size: 11.5px; color: var(--ink-dim); }
  .plot-readout.has-value { color: var(--ink); font-variant-numeric: tabular-nums; }



  /* ---- Desktop sizing --------------------------------------------------------
     The sheet layout is right on a phone but wrong on a wide screen, where a
     full-bleed panel leaves the plot stranded in a sea of empty space. Above
     760px the modals become centred dialogs with a sensible maximum width. */
  @media (min-width: 760px) {
    .modal { max-width: 680px; margin: 0 auto; border-radius: 14px;
      border: 1px solid var(--line); max-height: 88dvh; }
    .modal.tracer-modal { position: fixed; inset: 3vh 4vw; width: auto;
      max-width: 1100px; margin: 0 auto; height: auto; max-height: 94dvh;
      border-radius: 14px; border: 1px solid var(--line); }
    /* Give the plot the room a large screen affords. */
    .modal.tracer-modal .tracer-head { max-height: 26vh; }
    .curve-list { max-height: 46%; }
    .curve-row { font-size: 13.5px; }
  }
  @media (min-width: 1100px) {
    .modal.tracer-modal { inset: 4vh auto; left: 50%; transform: translateX(-50%);
      width: 1040px; }
  }

  /* Axis inputs in one compact row on a wide screen - four stacked pairs cost
     over 200px of height that the plot needs. */
  @media (min-width: 760px) {
    .modal.tracer-modal .field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
    .modal.tracer-modal details.tracer-head[open] { max-height: 24vh; }
    .modal.tracer-modal h3 { font-size: 15px; margin-bottom: 2px; }
    .modal.tracer-modal .modal-sub { font-size: 11.5px; }
  }

  /* Boundary note: a brief explanation when a drag hits a real adjustable-range
     limit, rather than the handle simply stopping with no explanation. */
  .boundary-note { position: fixed; left: 50%; bottom: 84px; transform: translateX(-50%) translateY(8px);
    max-width: 320px; padding: 10px 14px; border-radius: 10px; background: rgba(20,22,28,.96);
    border: 1px solid var(--copper); color: var(--ink); font-size: 12px; line-height: 1.45;
    box-shadow: 0 8px 24px rgba(0,0,0,.5); opacity: 0; pointer-events: none;
    transition: opacity .18s ease, transform .18s ease; z-index: 60; }
  .boundary-note.show { opacity: 1; transform: translateX(-50%) translateY(0); }
  .boundary-note b { color: var(--copper); }
  .override-flag { color: #e0a800; font-size: 10.5px; font-weight: 600; margin-left: 4px; cursor: help; }

  /* ---- Single Line Diagram ---------------------------------------------- */
  .sld-wrap { padding: 14px; overflow-x: auto; }
  .sld-svg { display: block; margin: 0 auto; background: var(--plot-panel);
    border: 1px solid var(--line); border-radius: 8px; }
  /* A wide diagram scrolls rather than shrinking to fit - see renderSld(). */
  .sld-wrap { -webkit-overflow-scrolling: touch; }
  .sld-note { margin-top: 10px; font-size: 10.5px; color: var(--ink-faint);
    text-align: center; }

  /* ---- SLD interaction + selection ------------------------------
     Only .sld-hit takes pointer events. Everything else in the diagram is
     explicitly transparent to them: SVG hit-tests painted geometry, so a 2px
     wire crossing a symbol, or a device's own label text, would otherwise
     swallow clicks aimed at the device. The hit rects are also emitted last
     (see renderScene) so they sit on top of the whole drawing. */
  .sld-svg text, .sld-svg line, .sld-svg circle, .sld-svg path,
  .sld-svg rect, .sld-svg g { pointer-events: none; }
  .sld-svg .sld-hit { pointer-events: all; fill: transparent; cursor: pointer; }
  .sld-svg .sld-hit:hover { fill: rgba(200,127,74,.13); }
  .sld-sel-ring { fill: rgba(91,141,217,.13); stroke: var(--blue); stroke-width: 1.6;
    stroke-dasharray: 4 3; }
 /* : right-click+hold+drag marquee (rectangular bucket-select) on
     empty diagram space. The rectangle itself is a fixed-position HTML div
     (viewport coordinates match pointer events directly, immune to the
     container's own scroll position during the drag); live-preview
     highlight on a hit rect currently inside it is a plain fill toggle, not
     a real selection commit, so a fast drag never triggers the full-page
     renderSld() a committed selection change would. */
  .sld-marquee { position: fixed; z-index: 55; pointer-events: none;
    border: 1.5px dashed var(--blue); background: rgba(91,141,217,.10); }
  .sld-svg .sld-hit.marquee-preview { fill: rgba(91,141,217,.30); }

  /* the SLD's top-level header row now carries EVERYTHING that
     used to be split across two separate thin rows - the two page-level
     actions (deselect everything, detach the window) AND the fault-current
 toolbar (had moved that into.sld-main, scoped to just the
     diagram column). KM: merge them, that gap between the two rows was
     "unused space." One row, full width, sits ABOVE the split so the
     sidebar below it still runs the view's full remaining height.
     REVISED (KM: still found this "badly organized/inefficient" even after
     the merge above) - the original layout used TWO spacers to spread three
     clusters to the far left/center/far right, which just moved the same
     "unused space" complaint sideways: Clear Selection and the fault-tools
     pill both act on THIS diagram right now, so isolating them at opposite
     ends of a wide row cost extra eye/mouse travel between two related
     controls for no benefit. Now: Clear Selection sits directly beside the
     fault-tools pill (one visual cluster, left-aligned - both are
     "what's shown/selected on the diagram right now"), ONE spacer absorbs
     the remaining width, and Detach SLD - a rare, one-off window action,
     not something reached for during normal fault-tracing work - is pushed
     to the far right AND shrunk to an icon-only button (see
     .sld-detach-btn below) so it reads as a minor corner control rather
     than a peer of the two things actually used every session. */
  .sld-header-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 8px 14px; border-bottom: 1px solid var(--line); }
  .sld-toolbar-spacer { flex: 1 1 auto; }
  .sld-toolbar-group { display: flex; align-items: center; gap: 7px; flex-wrap: wrap;
    background: var(--panel-2); border: 1px solid var(--line); border-radius: 999px;
    padding: 5px 6px 5px 12px; }
  .sld-toolbar-select { background: var(--panel); color: var(--ink);
    border: 1px solid var(--line); border-radius: 999px; padding: 3px 10px; font-size: 11.5px; }
  /* Icon-only, same 28px-tall .btn.xs floor as its neighbours in the pill -
     visually it reads as a small corner affordance, not a fourth button
     competing with Clear Selection/Fault All/Clear for attention. */
  .sld-detach-btn { min-width: 30px; padding: 3px 8px; }

 /* ---- : Devices sidebar merged into the SLD tab -------------
     #view-sld becomes a fixed-height flex column (toolbar, then the split)
     instead of the generic .view.active{display:block} every other tab
     still uses - a plain block element has no bounded height for a flex
     child to size against. The split itself is a row: a fixed-width
     sidebar (its own vertical scroller), a thin collapse handle, then the
     diagram column (chip bar + diagram, the diagram itself scrolling both
     ways).
     Deliberately scoped to `.sld-main .sld-wrap`, never the bare
     `.sld-wrap` rule above - the detached window writes a bare
     `.sld-wrap` with no `.sld-main` ancestor and must keep its existing
     "whole child window scrolls" behavior unchanged. */
  #view-sld.active { display: flex; flex-direction: column; }
  .sld-split { flex: 1 1 auto; min-height: 0; display: flex; }
  .sld-side {
    flex: 0 0 300px; width: 300px; overflow-y: auto;
    padding: 0 12px 12px 14px;
    transition: flex-basis 0.15s ease, width 0.15s ease, opacity 0.15s ease, padding 0.15s ease;
  }
  /* "Retag Devices" / "Add Devices" - same plain .btn.sm on
     both (KM: "use the same black box for both"; the old "+ Add device"
     was the only .primary/copper button here, which read as one important
     action next to one lesser one, not a matched pair) and flex:1 each so
     they fill the sidebar's width evenly instead of a heading pushing them
     apart via justify-content:space-between. The <h2>"Devices"</h2> label
     that used to sit here is gone - the sidebar itself is unambiguous
     without it once nothing else on this view also says "Devices". */
  .sld-side .section-head { margin-top: 4px; justify-content: stretch; gap: 8px; }
  .sld-side .section-head .btn { flex: 1 1 0; }
  /* Collapsed via window.toggleSldSidebar() (js/main.js), persisted in
     localStorage the same guarded-try/catch way the AI review key is
     (aiKeyGet/aiKeySet) - the only existing precedent for a UI preference
     surviving a reload. */
  #sld-split.sld-side-collapsed .sld-side {
    flex-basis: 0; width: 0; padding-left: 0; padding-right: 0; opacity: 0; overflow: hidden;
  }
  /* The show/hide handle sits BETWEEN the two panes as its own thin strip -
     one border here reads as "the edge between two panels"; a border on
     .sld-side AND a separate toggle button elsewhere read as two competing
     dividers. Chevron is a pure-CSS pseudo-element, flipped by the same
     .sld-side-collapsed class that already drives the sidebar's own
     collapse - no JS text-content churn needed. */
  /* widened + brightened - KM: the original 15px strip at
     var(--ink-faint) was "not even visible". 24px with a solid (not
     barely-tinted) idle background and the brighter --ink-dim tone reads
     as a real control at rest, not only on hover. */
  .sld-side-handle {
    flex: 0 0 auto; width: 24px; align-self: stretch; padding: 0;
    background: var(--panel); border: none; border-left: 1px solid var(--line);
    border-right: 1px solid var(--line); color: var(--ink-dim); cursor: pointer;
    display: flex; align-items: center; justify-content: center;
  }
  .sld-side-handle:hover { background: var(--line); color: var(--ink); }
  .sld-side-handle::before { content: '◂'; font-size: 15px; line-height: 1; font-weight: 700; }
  #sld-split.sld-side-collapsed .sld-side-handle::before { content: '▸'; }
  .sld-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
  .sld-main .sld-wrap { flex: 1 1 auto; overflow-y: auto; min-height: 0; }
  /* Below this, the sidebar and the diagram no longer have room side by
     side on a laptop-width window - stack them instead of squeezing the
     diagram into an unreadable sliver. */
  @media (max-width: 900px) {
    .sld-split { flex-direction: column; }
    .sld-side {
      flex: 0 0 auto; width: 100%; max-height: 34vh;
      padding: 0 0 10px;
    }
    #sld-split.sld-side-collapsed .sld-side { flex-basis: 0; max-height: 0; padding-bottom: 0; }
    .sld-side-handle {
      width: 100%; height: 24px; align-self: auto;
      border-left: none; border-right: none;
      border-top: 1px solid var(--line); border-bottom: 1px solid var(--line);
    }
    .sld-side-handle::before { content: '▴'; }
    #sld-split.sld-side-collapsed .sld-side-handle::before { content: '▾'; }
  }

 /* Selection chip bar. : removed from the MAIN view's own
     markup - KM: the diagram's own blue selection rings already show
     what's selected, so a second, text description of the same thing
     ("4 devices · 3 cascades" + a chip per device) was redundant; its
     Clear button survives as "Clear Selection" in the header row instead.
     This CSS stays for the DETACHED window, which still creates
     its own #sld-selbar directly (openDetachedSld(), js/sld-interact.js) -
     window.renderSelectionBar() no-ops harmlessly on the main page now
     that #sld-selbar doesn't exist there (guarded: `if (bar) ...`). */
  .sel-bar { margin: 10px 14px 0; padding: 10px 12px;
    background: var(--panel); border: 1px solid var(--line); border-radius: 8px; }
  .sel-bar:empty { display: none; }
  .sel-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 7px; }
  .sel-scope { font-size: 12.5px; font-weight: 700; color: var(--ink); }
  .sel-count { font-size: 11px; color: var(--ink-dim); font-family: var(--mono); }
  .sel-actions { margin-left: auto; display: flex; gap: 6px; }
  .sel-chips { display: flex; flex-wrap: wrap; gap: 6px; }
  .sel-chip { display: inline-flex; align-items: center; gap: 6px;
    background: var(--panel-2); border: 1px solid var(--line); border-radius: 999px;
    padding: 3px 4px 3px 9px; font-size: 11.5px; color: var(--ink); }
  /* A device with nothing selected in series with it is dimmed rather than
     hidden - it IS in the selection, it just is not compared with anything,
     and silently dropping it from the bar would hide that fact. */
  .sel-chip.lone { opacity: .55; border-style: dashed; }
  .sel-dot { width: 9px; height: 9px; border-radius: 2px; flex-shrink: 0; }
  .sel-x { background: none; border: none; color: var(--ink-dim); cursor: pointer;
    font-size: 11px; line-height: 1; padding: 3px 5px; border-radius: 999px; }
  .sel-x:hover { background: rgba(217,89,76,.18); color: var(--red); }
  .sel-empty, .sel-warn { font-size: 11px; color: var(--ink-faint); }
  .sel-warn { margin-top: 6px; color: var(--copper); }

  /* the per-card checkbox/zone button is gone (see
     showDevPopover comment area, js/devices.js, for why) - selection now
     happens only by clicking the SLD diagram itself, now that the device
     list and the diagram share one page. The .selected highlight below is
     the only selection feedback a card carries any more; it was ALREADY
     doing the real communicating (KM: "the box borders itself is being
     highlighted"), so removing the checkbox loses nothing. */
  .device-card.selected { border-color: rgba(91,141,217,.55); background: rgba(91,141,217,.06); }

  /* ---- Bus / feeder branching ------------------------------------------- */
  .feeder-row {
    display: flex; align-items: center; gap: 8px; padding: 8px 0;
    border-bottom: 1px solid var(--line);
  }
  .feeder-row:last-child { border-bottom: none; }
  .feeder-row .feeder-name {
    flex: 1; min-width: 0; background: var(--panel); border: 1px solid var(--line);
    border-radius: 6px; padding: 6px 8px; color: var(--ink); font-size: 13px;
  }
  .feeder-row .feeder-count {
    font-size: 11px; color: var(--ink-faint); font-family: var(--mono);
    white-space: nowrap; flex-shrink: 0;
  }
  .branch-crumb {
    display: flex; align-items: center; gap: 10px; padding: 6px 2px 12px;
    font-size: 12.5px; color: var(--ink-dim); font-family: var(--mono);
  }
  .feeder-row .feeder-load { width: 78px; flex-shrink: 0; background: var(--panel);
    border: 1px solid var(--line); border-radius: 6px; padding: 6px 8px;
    color: var(--ink); font-size: 12px; }
  .path-pick { display: inline-flex; gap: 6px; align-items: center; margin-right: 10px; }
  .path-pick select { background: var(--panel); border: 1px solid var(--line);
    border-radius: 6px; padding: 4px 6px; color: var(--ink); font-size: 11.5px; }
  .path-banner { margin: 0 0 10px; padding: 9px 11px; border-radius: 7px; font-size: 11.5px;
    line-height: 1.5; background: rgba(90,169,230,.10); border: 1px solid rgba(90,169,230,.35);
    color: var(--ink); }

/* Multi-level coordination run summary (js/coordinate-tree.js) */
.coord-notes { margin-top: 8px; border: 1px solid var(--line); border-radius: 8px; padding: 6px 10px; background: var(--panel-2); }
.coord-notes summary { cursor: pointer; font-size: calc(11.5px * var(--uiscale, 1)); color: var(--ink-dim); }
.coord-notes ul { margin: 6px 0 2px 16px; padding: 0; }
.coord-notes li { font-size: calc(11px * var(--uiscale, 1)); color: var(--ink-dim); margin-bottom: 3px; }

/* ---------------------------------------------------------------------------
 * Help viewer -- contents on the left, topic body on the right, search
 * filtering the contents live. Lives in its OWN pop-out browser window now
 * (js/help.js), not a backdrop+drawer over the main page - REVISED (KM: the
 * old full-viewport modal blocked the rest of the app while open; a real
 * second window means .help-panel just needs to fill IT, no backdrop to
 * float over any more). Every colour still resolves through the existing
 * theme tokens - openThemedChildWindow (js/sld-interact.js) stamps the same
 * data-theme onto the pop-out's html element, so it follows light/dark
 * exactly like the main window, live if the user toggles it while the
 * window stays open.
 * ------------------------------------------------------------------------ */
.help-panel{
  background: var(--panel);
  width: 100%; height: 100vh;
  display: flex; flex-direction: column;
}
.help-head{
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 12px 16px;
  border-bottom: 1px solid var(--line); flex: 0 0 auto;
}
.help-head h3{ margin: 0; font-size: 15px; color: var(--copper); }
.help-body{ display: flex; flex: 1 1 auto; min-height: 0; }

/* Contents pane */
.help-toc{
  flex: 0 0 250px; border-right: 1px solid var(--line);
  padding: 12px; overflow-y: auto; background: var(--bg);
}
.help-search{
  width: 100%; padding: 8px 10px; margin-bottom: 10px;
  background: var(--panel); color: var(--ink);
  border: 1px solid var(--line); border-radius: 7px;
  font-family: var(--font); font-size: 13px;
}
.help-search:focus{ outline: 2px solid var(--copper); border-color: var(--copper); }
.help-toc ul{ list-style: none; margin: 0; padding: 0; }
.help-toc li{ margin: 0; }
.help-toc a{
  display: block; padding: 7px 9px; border-radius: 6px;
  color: var(--ink-dim); text-decoration: none; font-size: 13px; line-height: 1.35;
}
.help-toc a:hover{ background: var(--panel-2); color: var(--ink); }
.help-toc a.on{ background: var(--panel-2); color: var(--copper-bright); font-weight: 600; }
.help-nores{ font-size: 12px; color: var(--ink-faint); padding: 6px 9px; margin: 0; }

/* Topic pane */
.help-content{
  flex: 1 1 auto; min-width: 0; overflow-y: auto;
  padding: 4px 24px 60vh;   /* deep tail so the LAST topic can still scroll to the top */
  scroll-behavior: smooth;
}
.help-content:focus{ outline: none; }
.help-topic{ padding-top: 20px; }
.help-topic h4{
  margin: 0 0 10px; font-size: 15px; color: var(--copper-bright);
  border-bottom: 1px solid var(--line); padding-bottom: 7px;
}
.help-topic p{ margin: 0 0 11px; font-size: 13.5px; line-height: 1.6; color: var(--ink); }
.help-topic ul{ margin: 0 0 11px 18px; padding: 0; }
.help-topic li{ font-size: 13.5px; line-height: 1.6; color: var(--ink); margin-bottom: 5px; }
.help-topic b{ color: var(--ink); font-weight: 650; }
.help-topic a{ color: var(--copper-bright); }
.help-note{
  border-left: 3px solid var(--copper); background: var(--panel-2);
  padding: 9px 12px; border-radius: 0 7px 7px 0; margin: 0 0 11px;
  font-size: 13px; line-height: 1.55; color: var(--ink-dim);
}
.help-mono{ font-family: var(--mono); font-size: 12.5px; color: var(--ink-dim); }
.help-keys{ border-collapse: collapse; margin-bottom: 11px; }
.help-keys td{ padding: 5px 14px 5px 0; font-size: 13.5px; color: var(--ink); }
.help-keys kbd{
  font-family: var(--mono); font-size: 12px; padding: 2px 7px;
  border: 1px solid var(--line); border-radius: 5px;
  background: var(--panel-2); color: var(--ink);
}

/* Below 900px the two panes cannot both fit (the pop-out window itself can
   still be resized/dragged this narrow), so the contents move above the
   body. */
@media (max-width: 900px){
  .help-body{ flex-direction: column; }
  .help-toc{
    flex: 0 0 auto; max-height: 40%; border-right: none;
    border-bottom: 1px solid var(--line);
  }
  .help-content{ padding: 4px 16px 40vh; }
}
/* No print rule needed any more - the help window is a separate document
   from the study page, so printing the study never touches it. */

/* Mobile screen-size notice. NON-BLOCKING by design: the backdrop element
   is only a positioning frame -- it has no scrim and pointer-events:none, so
   every click passes straight through to the app underneath. Only the card
   itself takes pointer events. A person on a phone can therefore read the
   advice and keep working without dismissing anything, which is the whole
   difference between this and the add/edit modal it deliberately shares no
   ids, classes or JS with. */
.mobile-notice-back {
  position: fixed; left: 0; right: 0; z-index: 60; display: none;
  bottom: calc(12px + env(safe-area-inset-bottom));
  justify-content: center; padding: 0 12px;
  background: none; pointer-events: none;
}
.mobile-notice-back.show { display: flex; }
.mobile-notice {
  pointer-events: auto;
  background: var(--panel); border: 1px solid var(--copper); border-radius: 14px;
  max-width: 420px; width: 100%; padding: 14px 16px 13px;
  box-shadow: 0 8px 28px rgba(0,0,0,.38);
}
.mobile-notice h3 { margin: 0 0 6px; font-size: 14px; color: var(--copper); }
.mobile-notice p { margin: 0 0 12px; font-size: 12.5px; line-height: 1.5; color: var(--ink-dim); }
.mobile-notice .btn { width: 100%; border-radius: var(--r-pill); }

/* ---- Web-build site bar (not present in the offline single-file build) ----
   Theme-aware, and deliberately written against tokens that exist in all
   three tools. The two sizing tools name their secondary ink --muted and
   their accent --copper-text; Coordination names the same two roles
   --ink-dim and --copper-bright. CSS variable fallbacks bridge that rather
   than forking this block per tool, which is what would let the three
   breadcrumbs drift apart again. */
.km-skip{position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--copper);color:var(--on-copper,#14181D);padding:12px 20px;
  border-radius:0 0 6px 0;font:600 13px/1 var(--font);text-decoration:none}
.km-skip:focus{left:0}
#km-content{display:inline-block;width:0;height:0}
.km-sitebar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;
  font:600 12px/1.2 var(--font);
  letter-spacing:.05em;text-transform:uppercase;
  padding:10px 16px;background:var(--card,var(--panel));
  border-bottom:1px solid var(--line)}
.km-sitebar__home{color:var(--muted,var(--ink-dim));text-decoration:none}
.km-sitebar__home:hover{color:var(--ink);text-decoration:underline}
.km-sitebar__home:focus-visible{outline:2px solid var(--copper);outline-offset:2px;border-radius:2px}
.km-sitebar__sep{color:var(--muted,var(--ink-dim));opacity:.6}
.km-sitebar__here{color:var(--copper-text,var(--copper-bright))}

/* ---- Server-call states -------------------------------------------------- */
.km-busy{opacity:.6;cursor:progress}
.km-offline{margin:12px 0;padding:12px 14px;border-radius:8px;
  background:var(--card,var(--panel));border:1px solid var(--copper);
  color:var(--copper-text,var(--copper-bright));
  font:400 14px/1.5 var(--font)}

/* ---- Remote-engine pending state ---------------------------------------- */
/* The engine is a network call away, so a render can legitimately be a beat
   behind the user. Say so quietly rather than looking frozen. */
html[data-engine-pending] #plot,
html[data-engine-pending] #coordBody { opacity: .72; transition: opacity .18s ease }
html[data-engine-pending]::after{
  content:"Updating\2026"; position:fixed; right:14px; bottom:14px; z-index:9999;
  font:600 11px/1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  letter-spacing:.06em; text-transform:uppercase;
  background:#14181D; color:#E08D3C; padding:8px 12px; border-radius:999px;
  border:1px solid rgba(224,141,60,.35); pointer-events:none}
@media (prefers-reduced-motion:reduce){
  html[data-engine-pending] #plot,
  html[data-engine-pending] #coordBody{transition:none}
}
