@charset "utf-8";
/* ============================================================================
   NAWRAS EDUCATION — STAKEHOLDER DASHBOARD MOCKUPS
   Static preview stylesheet · HTML + CSS only · zero JavaScript
   ----------------------------------------------------------------------------
   CONTENTS  (Ctrl+F the bracketed anchor)
     [L]   Layer order
     [T]   tokens      — verbatim light palette from nawras-management
     [B]   base        — reset, type, focus, scrollbar, visually-hidden
     [S]   shell       — header, sidebar, main, page header, card
     [C]   components  — btn, badge, kpi, table, empty, chips, toolbar, avatar…
     [G]   charts      — [G-01]..[G-16] chart primitives
     [I]   i18n        — AR/EN toggle + RTL corrections
     [U]   utilities   — grid spans, stacks, helpers
     [P]   print       — A4 landscape, colour-exact

   RULES FOR ANYONE EDITING THIS FILE
     1. Layer order is the contract. i18n MUST come after components + charts.
     2. EVERY rule lives inside a layer. An unlayered rule beats all layers and
        will silently break RTL.
     3. No physical direction properties. Use logical ones everywhere:
        margin-inline-*, padding-inline-*, inset-inline-*, border-inline-*,
        text-align: start/end, inline-size, block-size.
        Vertical-only physical values (top/bottom/block) are fine.
     4. Colour literals appear ONLY in @layer tokens.
     5. No CSS nesting — flat selectors stay greppable.
   ========================================================================== */

/* == [L] Layer order ====================================================== */
@layer tokens, base, shell, components, charts, i18n, utilities, print;

/* == [T] tokens =========================================================== */
/* Verbatim from the LMS frontend's own runtime token file,
   nawras-education-frontend/src/styles/_palette.scss — which declares these as
   :root custom properties, so these ARE the values the app paints with.

   NOTE on primary: the app's primary is #000094. A second blue, #2f5cbd, exists
   in _settings.colors.scss and ant-theme.less but reaches only raw Material/ant
   chrome that these boards never draw — it is deliberately NOT used here.

   Shell metrics come from the components that actually render the screen
   (side/sidenav/header/main-page .component.scss), not from
   _settings.layout.scss, whose 64/80px header never takes effect. */
@layer tokens {
  :root {
  --logo-full: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA3IiBoZWlnaHQ9IjQ1IiB2aWV3Qm94PSIwIDAgMTA3IDQ1IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTIuMzk3ODcgMjQuNDA0N0MyLjM5Nzg3IDIyLjMxNTcgMy41NDk0OSAyMS4xMTc2IDUuNTY4ODQgMjEuMTE3Nkg2LjM1NjIyQzguMzc1NTggMjEuMTE3NiA5LjUyNzE5IDIyLjMxNTcgOS41MjcxOSAyNC40MDQ3VjMyLjUyMzFIMTEuOTI1MVYyNC4yMDY1QzExLjkyNTEgMjAuNzg1NSAxMC4xNTAzIDE4Ljk3NTEgNi4zNTYyMiAxOC45NzUxSDUuNTY4ODRDMS43NzQ3NCAxOC45NzUxIDAgMjAuNzg1NSAwIDI0LjIwNjVWMzIuNTIzMUgyLjM5Nzg3VjI0LjQwNDdaIiBmaWxsPSJ3aGl0ZSIvPg0KPHBhdGggZD0iTTE5LjMyOTYgMzIuNTIxQzIxLjUwNzggMzIuNTIxIDIzLjAyNTUgMzEuNjY1OCAyMy45NjgyIDI5LjY5ODJIMjQuMTg0MlYzMi41MjFIMjYuNTc4NVYxOC45NzEySDI0LjE4NDJWMjEuODQ5M0gyMy45NjgyQzIzLjAyMDEgMTkuODQ2MSAyMS40NjY4IDE4Ljk3MTIgMTkuMjE3MSAxOC45NzEyQzE3LjQwODQgMTguOTcxMiAxNS45NTg2IDE5LjU4NTQgMTQuOTA3IDIwLjc5NzdDMTMuODI4NiAyMi4wMzY4IDEzLjI4MjIgMjMuNzAyNiAxMy4yODIyIDI1Ljc0N0MxMy4yODIyIDI3Ljc5MTMgMTMuODM3NSAyOS40NjI1IDE0LjkzNTYgMzAuNjY3N0MxNi4wMjExIDMxLjkxNTcgMTcuNDU4NCAzMi41MjI4IDE5LjMyOTYgMzIuNTIyOFYzMi41MjFaTTIwLjExNTIgMjEuMTExOUMyMy4xMDA1IDIxLjExMTkgMjQuMzI1MyAyMi42Mjc4IDI0LjMyNTMgMjUuNzQ3QzI0LjMyNTMgMjguODY2MiAyMy4xMDA1IDMwLjM4MiAyMC4xMTUyIDMwLjM4MkMxNy4xMjk5IDMwLjM4MiAxNS43MDUxIDI4Ljg2NjIgMTUuNzA1MSAyNS43NDdDMTUuNzA1MSAyMi42Mjc4IDE3LjE0NzcgMjEuMTExOSAyMC4xMTUyIDIxLjExMTlaIiBmaWxsPSJ3aGl0ZSIvPg0KPHBhdGggZD0iTTUxLjQ5NzggMjYuNjQzNUM1MS40OTc4IDIzLjI0NzUgNTMuMDQ3NiAyMS4yMTM5IDU1LjY0NzIgMjEuMTk3OFYxOC45NzMxQzUzLjg5NzUgMTkuMDY3OCA1MS45NDI0IDIwLjE3MTIgNTEuOTQyNCAyMS44NTEzSDUxLjcyNDZWMTguOTczMUg0OS4zMzJWMzIuNTIzSDUxLjQ5NzhWMjYuNjQ1MlYyNi42NDM1WiIgZmlsbD0id2hpdGUiLz4NCjxwYXRoIGQ9Ik00MS42Nzc3IDMyLjUyMUg0NC41NTk1TDQ4LjM3NSAxOC45NzEySDQ1Ljc1NzVMNDMuMTcwNCAzMC4zMzJMNDIuNzE2OSAzMC4zNDgxTDM5LjM1MzEgMTguOTcxMkgzNi43NzY3TDMzLjQxMTEgMzAuMjk0NUwzMi45NTc2IDMwLjI3NDlMMzAuNDExNSAxOC45NzEySDI3Ljc2MzdMMzEuNTk1MyAzMi41MjFIMzQuNDUyTDM4LjA5NDMgMjEuMTMzNEw0MS42Nzc3IDMyLjUyMVoiIGZpbGw9IndoaXRlIi8+DQo8cGF0aCBkPSJNNzguOTQwNiAyNC45OTM0TDc1LjkxNzggMjQuNDYxM0M3NC42MDAxIDI0LjI1NiA3NC4wMzk1IDIzLjcwOTYgNzQuMDM5NSAyMi42MzNDNzQuMDM5NSAyMS43NzI0IDc0LjQ5ODQgMjAuNzQ1OCA3Ni42ODM4IDIwLjc0NThDNzguNjc4MSAyMC43NDU4IDc5LjQ0NzYgMjEuMzQ1NyA3OS43MTE5IDIzLjE4MjlMODEuODc5NCAyMi42Mjk0QzgxLjM2NyAyMC4xNjczIDc5LjYyOCAxOC45NjkyIDc2LjU3MTMgMTguOTY5MkM3My41MTQ2IDE4Ljk2OTIgNzEuNjQ3IDIwLjQzNjkgNzEuNjQ3IDIyLjgwMDhDNzEuNjQ3IDI0Ljg4NDQgNzIuODIxOCAyNi4wOTMyIDc1LjI0MTEgMjYuNDk0OUw3Ny42NzQ3IDI2Ljk0MzFDNzkuMzEwMiAyNy4yMDU1IDc5Ljg2MDEgMjcuNjg3NiA3OS44NjAxIDI4Ljg1MzVDNzkuODYwMSAyOS42ODkxIDc5LjM3MjcgMzAuNjgzNiA3Ny4wNDggMzAuNjgzNkM3NC45NDI5IDMwLjY4MzYgNzMuOTUyIDI5Ljk3MyA3My41ODYgMjguMTY3OUw3MS4yOTg4IDI4Ljg0NDZDNzEuODkxNiAzMS4xNDc4IDczLjk1MDIgMzIuNTE1NSA3Ni44NTM0IDMyLjUxNTVDODAuMjE5IDMyLjUxNTUgODIuMjI3NiAzMC45OTk2IDgyLjIyNzYgMjguNDU4OUM4Mi4yMjc2IDI1LjkxODIgODAuNDQyMSAyNS4yNDE1IDc4Ljk0NDEgMjQuOTg4TDc4Ljk0MDYgMjQuOTkzNFoiIGZpbGw9IndoaXRlIi8+DQo8cGF0aCBkPSJNNjEuOTM1IDMyLjUyMUM2NC4xMTMzIDMyLjUyMSA2NS42MzA5IDMxLjY2NTggNjYuNTczNyAyOS42OTgySDY2Ljc4OTdWMzIuNTIxSDY5LjE4NFYxOC45NzEySDY2Ljc4OTdWMjEuODQ5M0g2Ni41NzM3QzY1LjYyNTYgMTkuODQ2MSA2NC4wNzIyIDE4Ljk3MTIgNjEuODIyNiAxOC45NzEyQzYwLjAxMzkgMTguOTcxMiA1OC41NjQxIDE5LjU4NTQgNTcuNTEyNSAyMC43OTc3QzU2LjQzNCAyMi4wMzY4IDU1Ljg4NzcgMjMuNzAyNiA1NS44ODc3IDI1Ljc0N0M1NS44ODc3IDI3Ljc5MTMgNTYuNDQzIDI5LjQ2MjUgNTcuNTQxIDMwLjY2NzdDNTguNjI2NiAzMS45MTU3IDYwLjA2MzkgMzIuNTIyOCA2MS45MzUgMzIuNTIyOFYzMi41MjFaTTYyLjcyMDYgMjEuMTExOUM2NS43MDU5IDIxLjExMTkgNjYuOTMwNyAyMi42Mjc4IDY2LjkzMDcgMjUuNzQ3QzY2LjkzMDcgMjguODY2MiA2NS43MDU5IDMwLjM4MiA2Mi43MjA2IDMwLjM4MkM1OS43MzU0IDMwLjM4MiA1OC4zMTA2IDI4Ljg2NjIgNTguMzEwNiAyNS43NDdDNTguMzEwNiAyMi42Mjc4IDU5Ljc1MzIgMjEuMTExOSA2Mi43MjA2IDIxLjExMTlaIiBmaWxsPSJ3aGl0ZSIvPg0KPHBhdGggZD0iTTMxLjE4MzYgMzUuNzU2OEgzNi42MDY2VjM2LjM5NDhIMzEuOTMxNlYzOS4yMzI4SDM2LjMwOTZWMzkuODcwOEgzMS45MzE2VjQyLjk3MjhIMzYuNjYxNlY0My42MTA4SDMxLjE4MzZWMzUuNzU2OFpNNDMuMTE2MSA0My42MTA4SDQyLjQ3ODFWNDIuNTMyOEg0Mi40NTYxQzQyLjM4MjggNDIuNzE2MiA0Mi4yNzI4IDQyLjg4NDggNDIuMTI2MSA0My4wMzg4QzQxLjk4NjggNDMuMTkyOCA0MS44MjU0IDQzLjMyNDggNDEuNjQyMSA0My40MzQ4QzQxLjQ1ODggNDMuNTM3NSA0MS4yNjA4IDQzLjYxODIgNDEuMDQ4MSA0My42NzY4QzQwLjg0MjggNDMuNzM1NSA0MC42Mzc0IDQzLjc2NDggNDAuNDMyMSA0My43NjQ4QzM5Ljk5OTQgNDMuNzY0OCAzOS42MjE4IDQzLjY4NzggMzkuMjk5MSA0My41MzM4QzM4Ljk4MzggNDMuMzcyNSAzOC43MTk4IDQzLjE1NjIgMzguNTA3MSA0Mi44ODQ4QzM4LjI5NDQgNDIuNjA2MiAzOC4xMzY4IDQyLjI4NzIgMzguMDM0MSA0MS45Mjc4QzM3LjkzMTQgNDEuNTYxMiAzNy44ODAxIDQxLjE3NjIgMzcuODgwMSA0MC43NzI4QzM3Ljg4MDEgNDAuMzY5NSAzNy45MzE0IDM5Ljk4ODIgMzguMDM0MSAzOS42Mjg4QzM4LjEzNjggMzkuMjYyMiAzOC4yOTQ0IDM4Ljk0MzIgMzguNTA3MSAzOC42NzE4QzM4LjcxOTggMzguMzkzMiAzOC45ODM4IDM4LjE3MzIgMzkuMjk5MSAzOC4wMTE4QzM5LjYyMTggMzcuODUwNSAzOS45OTk0IDM3Ljc2OTggNDAuNDMyMSAzNy43Njk4QzQwLjY0NDggMzcuNzY5OCA0MC44NTAxIDM3Ljc5NTUgNDEuMDQ4MSAzNy44NDY4QzQxLjI1MzQgMzcuODk4MiA0MS40NDQxIDM3Ljk3ODggNDEuNjIwMSAzOC4wODg4QzQxLjc5NjEgMzguMTkxNSA0MS45NTAxIDM4LjMxOTggNDIuMDgyMSAzOC40NzM4QzQyLjIyMTQgMzguNjI3OCA0Mi4zMjc4IDM4LjgwNzUgNDIuNDAxMSAzOS4wMTI4SDQyLjQyMzFWMzUuNzU2OEg0My4xMTYxVjQzLjYxMDhaTTM4LjU3MzEgNDAuNzcyOEMzOC41NzMxIDQxLjA2NjIgMzguNjA2MSA0MS4zNTk1IDM4LjY3MjEgNDEuNjUyOEMzOC43NDU0IDQxLjkzODggMzguODU1NCA0Mi4xOTU1IDM5LjAwMjEgNDIuNDIyOEMzOS4xNTYxIDQyLjY1MDIgMzkuMzUwNCA0Mi44MzcyIDM5LjU4NTEgNDIuOTgzOEMzOS44MTk4IDQzLjEyMzIgNDAuMTAyMSA0My4xOTI4IDQwLjQzMjEgNDMuMTkyOEM0MC43OTg4IDQzLjE5MjggNDEuMTA2OCA0My4xMjMyIDQxLjM1NjEgNDIuOTgzOEM0MS42MTI4IDQyLjgzNzIgNDEuODE4MSA0Mi42NTAyIDQxLjk3MjEgNDIuNDIyOEM0Mi4xMzM0IDQyLjE5NTUgNDIuMjQ3MSA0MS45Mzg4IDQyLjMxMzEgNDEuNjUyOEM0Mi4zODY0IDQxLjM1OTUgNDIuNDIzMSA0MS4wNjYyIDQyLjQyMzEgNDAuNzcyOEM0Mi40MjMxIDQwLjQ3OTUgNDIuMzg2NCA0MC4xODk4IDQyLjMxMzEgMzkuOTAzOEM0Mi4yNDcxIDM5LjYxMDUgNDIuMTMzNCAzOS4zNTAyIDQxLjk3MjEgMzkuMTIyOEM0MS44MTgxIDM4Ljg5NTUgNDEuNjEyOCAzOC43MTIyIDQxLjM1NjEgMzguNTcyOEM0MS4xMDY4IDM4LjQyNjIgNDAuNzk4OCAzOC4zNTI4IDQwLjQzMjEgMzguMzUyOEM0MC4xMDIxIDM4LjM1MjggMzkuODE5OCAzOC40MjYyIDM5LjU4NTEgMzguNTcyOEMzOS4zNTA0IDM4LjcxMjIgMzkuMTU2MSAzOC44OTU1IDM5LjAwMjEgMzkuMTIyOEMzOC44NTU0IDM5LjM1MDIgMzguNzQ1NCAzOS42MTA1IDM4LjY3MjEgMzkuOTAzOEMzOC42MDYxIDQwLjE4OTggMzguNTczMSA0MC40Nzk1IDM4LjU3MzEgNDAuNzcyOFpNNDkuNTg2NSA0My42MTA4SDQ4Ljk0ODVWNDIuNTg3OEg0OC45MjY1QzQ4Ljc0MzIgNDIuOTY5MiA0OC40NzU1IDQzLjI2MjUgNDguMTIzNSA0My40Njc4QzQ3Ljc3ODggNDMuNjY1OCA0Ny4zOTM4IDQzLjc2NDggNDYuOTY4NSA0My43NjQ4QzQ2LjYwOTIgNDMuNzY0OCA0Ni4zMDEyIDQzLjcxMzUgNDYuMDQ0NSA0My42MTA4QzQ1Ljc5NTIgNDMuNTE1NSA0NS41ODk4IDQzLjM3NjIgNDUuNDI4NSA0My4xOTI4QzQ1LjI3NDUgNDMuMDA5NSA0NS4xNjA4IDQyLjc4NTggNDUuMDg3NSA0Mi41MjE4QzQ1LjAxNDIgNDIuMjU3OCA0NC45Nzc1IDQxLjk1NzIgNDQuOTc3NSA0MS42MTk4VjM3LjkzNDhINDUuNjcwNVY0MS42MzA4QzQ1LjY4NTIgNDIuMTQ0MiA0NS44MDI1IDQyLjUzMjggNDYuMDIyNSA0Mi43OTY4QzQ2LjI0OTggNDMuMDYwOCA0Ni42Mzg1IDQzLjE5MjggNDcuMTg4NSA0My4xOTI4QzQ3LjQ4OTIgNDMuMTkyOCA0Ny43NDU4IDQzLjEzMDUgNDcuOTU4NSA0My4wMDU4QzQ4LjE3MTIgNDIuODczOCA0OC4zNDcyIDQyLjcwMTUgNDguNDg2NSA0Mi40ODg4QzQ4LjYyNTggNDIuMjc2MiA0OC43Mjg1IDQyLjAzNDIgNDguNzk0NSA0MS43NjI4QzQ4Ljg2MDUgNDEuNDg0MiA0OC44OTM1IDQxLjIwMTggNDguODkzNSA0MC45MTU4VjM3LjkzNDhINDkuNTg2NVY0My42MTA4Wk01NS40NTA3IDM5LjcxNjhDNTUuMzU1NCAzOS4yOTE1IDU1LjE3OTQgMzguOTU3OCA1NC45MjI3IDM4LjcxNThDNTQuNjY2MSAzOC40NzM4IDU0LjMwNjcgMzguMzUyOCA1My44NDQ3IDM4LjM1MjhDNTMuNTE0NyAzOC4zNTI4IDUzLjIyNTEgMzguNDIyNSA1Mi45NzU3IDM4LjU2MThDNTIuNzI2NCAzOC43MDEyIDUyLjUxNzQgMzguODg0NSA1Mi4zNDg3IDM5LjExMThDNTIuMTg3NCAzOS4zMzkyIDUyLjA2MjcgMzkuNTk5NSA1MS45NzQ3IDM5Ljg5MjhDNTEuODk0MSA0MC4xNzg4IDUxLjg1MzcgNDAuNDcyMiA1MS44NTM3IDQwLjc3MjhDNTEuODUzNyA0MS4wNzM1IDUxLjg5NDEgNDEuMzcwNSA1MS45NzQ3IDQxLjY2MzhDNTIuMDYyNyA0MS45NDk4IDUyLjE4NzQgNDIuMjA2NSA1Mi4zNDg3IDQyLjQzMzhDNTIuNTE3NCA0Mi42NjEyIDUyLjcyNjQgNDIuODQ0NSA1Mi45NzU3IDQyLjk4MzhDNTMuMjI1MSA0My4xMjMyIDUzLjUxNDcgNDMuMTkyOCA1My44NDQ3IDQzLjE5MjhDNTQuMDU3NCA0My4xOTI4IDU0LjI1OTEgNDMuMTUyNSA1NC40NDk3IDQzLjA3MThDNTQuNjQwNCA0Mi45OTEyIDU0LjgwOTEgNDIuODgxMiA1NC45NTU3IDQyLjc0MThDNTUuMTAyNCA0Mi41OTUyIDU1LjIyMzQgNDIuNDIyOCA1NS4zMTg3IDQyLjIyNDhDNTUuNDE0MSA0Mi4wMjY4IDU1LjQ3MjcgNDEuODEwNSA1NS40OTQ3IDQxLjU3NThINTYuMTg3N0M1Ni4wOTI0IDQyLjI2NTIgNTUuODM5NCA0Mi44MDQyIDU1LjQyODcgNDMuMTkyOEM1NS4wMTgxIDQzLjU3NDIgNTQuNDkwMSA0My43NjQ4IDUzLjg0NDcgNDMuNzY0OEM1My40MTIxIDQzLjc2NDggNTMuMDI3MSA0My42ODc4IDUyLjY4OTcgNDMuNTMzOEM1Mi4zNTk3IDQzLjM3MjUgNTIuMDgxMSA0My4xNTYyIDUxLjg1MzcgNDIuODg0OEM1MS42MjY0IDQyLjYxMzUgNTEuNDU0MSA0Mi4yOTgyIDUxLjMzNjcgNDEuOTM4OEM1MS4yMTk0IDQxLjU3MjIgNTEuMTYwNyA0MS4xODM1IDUxLjE2MDcgNDAuNzcyOEM1MS4xNjA3IDQwLjM2MjIgNTEuMjE5NCAzOS45NzcyIDUxLjMzNjcgMzkuNjE3OEM1MS40NTQxIDM5LjI1MTIgNTEuNjI2NCAzOC45MzIyIDUxLjg1MzcgMzguNjYwOEM1Mi4wODExIDM4LjM4OTUgNTIuMzU5NyAzOC4xNzMyIDUyLjY4OTcgMzguMDExOEM1My4wMjcxIDM3Ljg1MDUgNTMuNDEyMSAzNy43Njk4IDUzLjg0NDcgMzcuNzY5OEM1NC40NTM0IDM3Ljc2OTggNTQuOTY2NyAzNy45MzEyIDU1LjM4NDcgMzguMjUzOEM1NS44MTAxIDM4LjU3NjUgNTYuMDYzMSAzOS4wNjQyIDU2LjE0MzcgMzkuNzE2OEg1NS40NTA3Wk01Ny42MzQ4IDM5LjY3MjhDNTcuNjU2OCAzOS4zNDI4IDU3LjcyNjUgMzkuMDU2OCA1Ny44NDM4IDM4LjgxNDhDNTcuOTYxMiAzOC41NzI4IDU4LjExODggMzguMzc0OCA1OC4zMTY4IDM4LjIyMDhDNTguNTIyMiAzOC4wNjY4IDU4Ljc2MDUgMzcuOTUzMiA1OS4wMzE4IDM3Ljg3OThDNTkuMzAzMiAzNy44MDY1IDU5LjYwMzggMzcuNzY5OCA1OS45MzM4IDM3Ljc2OThDNjAuMTgzMiAzNy43Njk4IDYwLjQzMjUgMzcuNzk1NSA2MC42ODE4IDM3Ljg0NjhDNjAuOTMxMiAzNy44OTA4IDYxLjE1NDggMzcuOTc4OCA2MS4zNTI4IDM4LjExMDhDNjEuNTUwOCAzOC4yNDI4IDYxLjcxMjIgMzguNDI5OCA2MS44MzY4IDM4LjY3MThDNjEuOTYxNSAzOC45MDY1IDYyLjAyMzggMzkuMjE0NSA2Mi4wMjM4IDM5LjU5NThWNDIuNjA5OEM2Mi4wMjM4IDQyLjg4ODUgNjIuMTU5NSA0My4wMjc4IDYyLjQzMDggNDMuMDI3OEM2Mi41MTE1IDQzLjAyNzggNjIuNTg0OCA0My4wMTMyIDYyLjY1MDggNDIuOTgzOFY0My41NjY4QzYyLjU3MDIgNDMuNTgxNSA2Mi40OTY4IDQzLjU5MjUgNjIuNDMwOCA0My41OTk4QzYyLjM3MjIgNDMuNjA3MiA2Mi4yOTUyIDQzLjYxMDggNjIuMTk5OCA0My42MTA4QzYyLjAyMzggNDMuNjEwOCA2MS44ODA4IDQzLjU4ODggNjEuNzcwOCA0My41NDQ4QzYxLjY2ODIgNDMuNDkzNSA2MS41ODc1IDQzLjQyMzggNjEuNTI4OCA0My4zMzU4QzYxLjQ3MDIgNDMuMjQ3OCA2MS40Mjk4IDQzLjE0NTIgNjEuNDA3OCA0My4wMjc4QzYxLjM5MzIgNDIuOTAzMiA2MS4zODU4IDQyLjc2NzUgNjEuMzg1OCA0Mi42MjA4SDYxLjM2MzhDNjEuMjM5MiA0Mi44MDQyIDYxLjExMDggNDIuOTY5MiA2MC45Nzg4IDQzLjExNThDNjAuODU0MiA0My4yNTUyIDYwLjcxMTIgNDMuMzcyNSA2MC41NDk4IDQzLjQ2NzhDNjAuMzk1OCA0My41NjMyIDYwLjIxNjIgNDMuNjM2NSA2MC4wMTA4IDQzLjY4NzhDNTkuODEyOCA0My43MzkyIDU5LjU3NDUgNDMuNzY0OCA1OS4yOTU4IDQzLjc2NDhDNTkuMDMxOCA0My43NjQ4IDU4Ljc4MjUgNDMuNzMxOCA1OC41NDc4IDQzLjY2NThDNTguMzIwNSA0My42MDcyIDU4LjExODggNDMuNTExOCA1Ny45NDI4IDQzLjM3OThDNTcuNzc0MiA0My4yNDA1IDU3LjYzODUgNDMuMDY4MiA1Ny41MzU4IDQyLjg2MjhDNTcuNDQwNSA0Mi42NTAyIDU3LjM5MjggNDIuNDAwOCA1Ny4zOTI4IDQyLjExNDhDNTcuMzkyOCA0MS43MTg4IDU3LjQ4MDggNDEuNDEwOCA1Ny42NTY4IDQxLjE5MDhDNTcuODMyOCA0MC45NjM1IDU4LjA2MzggNDAuNzkxMiA1OC4zNDk4IDQwLjY3MzhDNTguNjQzMiA0MC41NTY1IDU4Ljk2OTUgNDAuNDc1OCA1OS4zMjg4IDQwLjQzMThDNTkuNjk1NSA0MC4zODA1IDYwLjA2NTggNDAuMzMyOCA2MC40Mzk4IDQwLjI4ODhDNjAuNTg2NSA0MC4yNzQyIDYwLjcxNDggNDAuMjU1OCA2MC44MjQ4IDQwLjIzMzhDNjAuOTM0OCA0MC4yMTE4IDYxLjAyNjUgNDAuMTc1MiA2MS4wOTk4IDQwLjEyMzhDNjEuMTczMiA0MC4wNjUyIDYxLjIyODIgMzkuOTg4MiA2MS4yNjQ4IDM5Ljg5MjhDNjEuMzA4OCAzOS43OTc1IDYxLjMzMDggMzkuNjcyOCA2MS4zMzA4IDM5LjUxODhDNjEuMzMwOCAzOS4yODQyIDYxLjI5MDUgMzkuMDkzNSA2MS4yMDk4IDM4Ljk0NjhDNjEuMTM2NSAzOC43OTI4IDYxLjAzMDIgMzguNjcxOCA2MC44OTA4IDM4LjU4MzhDNjAuNzU4OCAzOC40OTU4IDYwLjYwMTIgMzguNDM3MiA2MC40MTc4IDM4LjQwNzhDNjAuMjQxOCAzOC4zNzEyIDYwLjA1MTIgMzguMzUyOCA1OS44NDU4IDM4LjM1MjhDNTkuNDA1OCAzOC4zNTI4IDU5LjA0NjUgMzguNDU5MiA1OC43Njc4IDM4LjY3MThDNTguNDg5MiAzOC44NzcyIDU4LjM0MjUgMzkuMjEwOCA1OC4zMjc4IDM5LjY3MjhINTcuNjM0OFpNNjEuMzMwOCA0MC41MDg4SDYxLjMwODhDNjEuMjY0OCA0MC41ODk1IDYxLjE4MDUgNDAuNjQ4MiA2MS4wNTU4IDQwLjY4NDhDNjAuOTMxMiA0MC43MjE1IDYwLjgyMTIgNDAuNzQ3MiA2MC43MjU4IDQwLjc2MThDNjAuNDMyNSA0MC44MTMyIDYwLjEyODIgNDAuODYwOCA1OS44MTI4IDQwLjkwNDhDNTkuNTA0OCA0MC45NDE1IDU5LjIyMjUgNDEuMDAwMiA1OC45NjU4IDQxLjA4MDhDNTguNzA5MiA0MS4xNjE1IDU4LjQ5NjUgNDEuMjc4OCA1OC4zMjc4IDQxLjQzMjhDNTguMTY2NSA0MS41Nzk1IDU4LjA4NTggNDEuNzkyMiA1OC4wODU4IDQyLjA3MDhDNTguMDg1OCA0Mi4yNDY4IDU4LjExODggNDIuNDA0NSA1OC4xODQ4IDQyLjU0MzhDNTguMjU4MiA0Mi42NzU4IDU4LjM1MzUgNDIuNzkzMiA1OC40NzA4IDQyLjg5NThDNTguNTg4MiA0Mi45OTEyIDU4LjcyMzggNDMuMDY0NSA1OC44Nzc4IDQzLjExNThDNTkuMDMxOCA0My4xNjcyIDU5LjE4OTUgNDMuMTkyOCA1OS4zNTA4IDQzLjE5MjhDNTkuNjE0OCA0My4xOTI4IDU5Ljg2NzggNDMuMTUyNSA2MC4xMDk4IDQzLjA3MThDNjAuMzUxOCA0Mi45OTEyIDYwLjU2MDggNDIuODczOCA2MC43MzY4IDQyLjcxOThDNjAuOTIwMiA0Mi41NjU4IDYxLjA2MzIgNDIuMzc4OCA2MS4xNjU4IDQyLjE1ODhDNjEuMjc1OCA0MS45Mzg4IDYxLjMzMDggNDEuNjg5NSA2MS4zMzA4IDQxLjQxMDhWNDAuNTA4OFpNNjUuMDU0OSAzNy45MzQ4SDY2LjIwOTlWMzguNTE3OEg2NS4wNTQ5VjQyLjM0NThDNjUuMDU0OSA0Mi41NzMyIDY1LjA4NDMgNDIuNzUyOCA2NS4xNDI5IDQyLjg4NDhDNjUuMjA4OSA0My4wMDk1IDY1LjM2NjYgNDMuMDc5MiA2NS42MTU5IDQzLjA5MzhDNjUuODEzOSA0My4wOTM4IDY2LjAxMTkgNDMuMDgyOCA2Ni4yMDk5IDQzLjA2MDhWNDMuNjQzOEM2Ni4xMDczIDQzLjY0MzggNjYuMDA0NiA0My42NDc1IDY1LjkwMTkgNDMuNjU0OEM2NS43OTkzIDQzLjY2MjIgNjUuNjk2NiA0My42NjU4IDY1LjU5MzkgNDMuNjY1OEM2NS4xMzE5IDQzLjY2NTggNjQuODA5MyA0My41Nzc4IDY0LjYyNTkgNDMuNDAxOEM2NC40NDI2IDQzLjIxODUgNjQuMzU0NiA0Mi44ODQ4IDY0LjM2MTkgNDIuNDAwOFYzOC41MTc4SDYzLjM3MTlWMzcuOTM0OEg2NC4zNjE5VjM2LjIyOThINjUuMDU0OVYzNy45MzQ4Wk02Ny43NzA4IDM1Ljc1NjhINjguNDYzOFYzNi44Njc4SDY3Ljc3MDhWMzUuNzU2OFpNNjcuNzcwOCAzNy45MzQ4SDY4LjQ2MzhWNDMuNjEwOEg2Ny43NzA4VjM3LjkzNDhaTTcyLjczODEgMzguMzUyOEM3Mi40MDgxIDM4LjM1MjggNzIuMTE4NCAzOC40MjI1IDcxLjg2OTEgMzguNTYxOEM3MS42MTk3IDM4LjcwMTIgNzEuNDEwNyAzOC44ODQ1IDcxLjI0MjEgMzkuMTExOEM3MS4wODA3IDM5LjMzOTIgNzAuOTU2MSAzOS41OTk1IDcwLjg2ODEgMzkuODkyOEM3MC43ODc0IDQwLjE3ODggNzAuNzQ3MSA0MC40NzIyIDcwLjc0NzEgNDAuNzcyOEM3MC43NDcxIDQxLjA3MzUgNzAuNzg3NCA0MS4zNzA1IDcwLjg2ODEgNDEuNjYzOEM3MC45NTYxIDQxLjk0OTggNzEuMDgwNyA0Mi4yMDY1IDcxLjI0MjEgNDIuNDMzOEM3MS40MTA3IDQyLjY2MTIgNzEuNjE5NyA0Mi44NDQ1IDcxLjg2OTEgNDIuOTgzOEM3Mi4xMTg0IDQzLjEyMzIgNzIuNDA4MSA0My4xOTI4IDcyLjczODEgNDMuMTkyOEM3My4wNjgxIDQzLjE5MjggNzMuMzU3NyA0My4xMjMyIDczLjYwNzEgNDIuOTgzOEM3My44NTY0IDQyLjg0NDUgNzQuMDYxNyA0Mi42NjEyIDc0LjIyMzEgNDIuNDMzOEM3NC4zOTE3IDQyLjIwNjUgNzQuNTE2NCA0MS45NDk4IDc0LjU5NzEgNDEuNjYzOEM3NC42ODUxIDQxLjM3MDUgNzQuNzI5MSA0MS4wNzM1IDc0LjcyOTEgNDAuNzcyOEM3NC43MjkxIDQwLjQ3MjIgNzQuNjg1MSA0MC4xNzg4IDc0LjU5NzEgMzkuODkyOEM3NC41MTY0IDM5LjU5OTUgNzQuMzkxNyAzOS4zMzkyIDc0LjIyMzEgMzkuMTExOEM3NC4wNjE3IDM4Ljg4NDUgNzMuODU2NCAzOC43MDEyIDczLjYwNzEgMzguNTYxOEM3My4zNTc3IDM4LjQyMjUgNzMuMDY4MSAzOC4zNTI4IDcyLjczODEgMzguMzUyOFpNNzIuNzM4MSAzNy43Njk4QzczLjE3MDcgMzcuNzY5OCA3My41NTIxIDM3Ljg1MDUgNzMuODgyMSAzOC4wMTE4Qzc0LjIxOTQgMzguMTczMiA3NC41MDE3IDM4LjM4OTUgNzQuNzI5MSAzOC42NjA4Qzc0Ljk1NjQgMzguOTMyMiA3NS4xMjg3IDM5LjI1MTIgNzUuMjQ2MSAzOS42MTc4Qzc1LjM2MzQgMzkuOTc3MiA3NS40MjIxIDQwLjM2MjIgNzUuNDIyMSA0MC43NzI4Qzc1LjQyMjEgNDEuMTgzNSA3NS4zNjM0IDQxLjU3MjIgNzUuMjQ2MSA0MS45Mzg4Qzc1LjEyODcgNDIuMjk4MiA3NC45NTY0IDQyLjYxMzUgNzQuNzI5MSA0Mi44ODQ4Qzc0LjUwMTcgNDMuMTU2MiA3NC4yMTk0IDQzLjM3MjUgNzMuODgyMSA0My41MzM4QzczLjU1MjEgNDMuNjg3OCA3My4xNzA3IDQzLjc2NDggNzIuNzM4MSA0My43NjQ4QzcyLjMwNTQgNDMuNzY0OCA3MS45MjA0IDQzLjY4NzggNzEuNTgzMSA0My41MzM4QzcxLjI1MzEgNDMuMzcyNSA3MC45NzQ0IDQzLjE1NjIgNzAuNzQ3MSA0Mi44ODQ4QzcwLjUxOTcgNDIuNjEzNSA3MC4zNDc0IDQyLjI5ODIgNzAuMjMwMSA0MS45Mzg4QzcwLjExMjcgNDEuNTcyMiA3MC4wNTQxIDQxLjE4MzUgNzAuMDU0MSA0MC43NzI4QzcwLjA1NDEgNDAuMzYyMiA3MC4xMTI3IDM5Ljk3NzIgNzAuMjMwMSAzOS42MTc4QzcwLjM0NzQgMzkuMjUxMiA3MC41MTk3IDM4LjkzMjIgNzAuNzQ3MSAzOC42NjA4QzcwLjk3NDQgMzguMzg5NSA3MS4yNTMxIDM4LjE3MzIgNzEuNTgzMSAzOC4wMTE4QzcxLjkyMDQgMzcuODUwNSA3Mi4zMDU0IDM3Ljc2OTggNzIuNzM4MSAzNy43Njk4Wk03Ni45OTE0IDM3LjkzNDhINzcuNjg0NFYzOC45MTM4SDc3LjcwNjRDNzcuODM4NCAzOC41NjkyIDc4LjA3MzEgMzguMjk0MiA3OC40MTA0IDM4LjA4ODhDNzguNzQ3NyAzNy44NzYyIDc5LjExODEgMzcuNzY5OCA3OS41MjE0IDM3Ljc2OThDNzkuOTE3NCAzNy43Njk4IDgwLjI0NzQgMzcuODIxMiA4MC41MTE0IDM3LjkyMzhDODAuNzgyNyAzOC4wMjY1IDgwLjk5OTEgMzguMTczMiA4MS4xNjA0IDM4LjM2MzhDODEuMzIxNyAzOC41NDcyIDgxLjQzNTQgMzguNzc0NSA4MS41MDE0IDM5LjA0NThDODEuNTY3NCAzOS4zMTcyIDgxLjYwMDQgMzkuNjIxNSA4MS42MDA0IDM5Ljk1ODhWNDMuNjEwOEg4MC45MDc0VjQwLjA2ODhDODAuOTA3NCAzOS44MjY4IDgwLjg4NTQgMzkuNjAzMiA4MC44NDE0IDM5LjM5NzhDODAuNzk3NCAzOS4xODUyIDgwLjcyMDQgMzkuMDAxOCA4MC42MTA0IDM4Ljg0NzhDODAuNTAwNCAzOC42OTM4IDgwLjM1MDEgMzguNTcyOCA4MC4xNTk0IDM4LjQ4NDhDNzkuOTc2MSAzOC4zOTY4IDc5Ljc0NTEgMzguMzUyOCA3OS40NjY0IDM4LjM1MjhDNzkuMTg3NyAzOC4zNTI4IDc4LjkzODQgMzguNDA0MiA3OC43MTg0IDM4LjUwNjhDNzguNTA1NyAzOC42MDIyIDc4LjMyMjQgMzguNzM3OCA3OC4xNjg0IDM4LjkxMzhDNzguMDIxNyAzOS4wODI1IDc3LjkwNDQgMzkuMjg3OCA3Ny44MTY0IDM5LjUyOThDNzcuNzM1NyAzOS43NjQ1IDc3LjY5MTcgNDAuMDIxMiA3Ny42ODQ0IDQwLjI5OThWNDMuNjEwOEg3Ni45OTE0VjM3LjkzNDhaIiBmaWxsPSJ3aGl0ZSIvPg0KPHBhdGggZD0iTTk1LjkzMjYgNS44NzY5Nkw5NS45NjIgNS44NzEwOUw5NS45MzI2IDUuODc2OTZaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjAzNzZfNzQ4NCkiLz4NCjxwYXRoIGQ9Ik0xMDUuNzMzIDUuMzk1NzRDMTAzLjQ5NSA0LjExOTE0IDEwMi4zMzUgNC4zOTIzMiA5OC44ODkgNS4yMDExM0M5OC43NDk4IDUuMjMzMjcgOTguNjA2OSA1LjI2NzE5IDk4LjQ2MDUgNS4zMDExMVY1LjI5NzU0Qzk4LjkwMTUgNC4xNDU5MyA5OS4wMDUxIDMuMDI4MjMgOTguNjQ0NCAxLjk5NDQ1Qzk4LjYyMTIgMS45MjY2IDk4LjYwMTYgMS44NTY5NyA5OC41NzMgMS43OTA5MUM5OC4wNTE2IDAuNTMyMTY0IDk3LjE2NjEgMC4xNDQ3MiA5Ni41MTQ0IDAuMDQyOTQ5NEM5Mi43MDI0IC0wLjU1NTE3OCA4NS45MTc3IDcuMjQwMTIgODUuMTU3MSA4LjEzMjg1Qzg0Ljk2NDMgOC4zNTk2IDg0LjkyODYgOC42ODA5OCA4NS4wNjYgOC45NDUyM0M4NS4yMDM1IDkuMjA3NjkgODUuNDg3NCA5LjM1OTQ1IDg1Ljc4NTYgOS4zMzA4OUM4NS44ODIgOS4zMjAxNyA4OC4yMTc0IDkuMDcwMjEgOTUuMDUzOSA3LjU3MDQzQzk1LjE3NzEgNy41NDM2NSA5NS4zMzI0IDcuNTA5NzIgOTUuNTA1NiA3LjQ3MDQ0Qzk1LjE4NDIgNy44ODI4OCA5NC44MjcxIDguMjk3MTEgOTQuNDU0IDguNzA5NTVDOTQuMzIxOCA4Ljg1NDE3IDk0LjE4OTcgOS4wMDA1OCA5NC4wNTIyIDkuMTQ1MkM5My42NjMgOS41NTk0MiA5My4yNTc3IDkuOTcwMDggOTIuODM5OSAxMC4zNzM2Qzg5Ljk0OTIgMTAuNDY0NyA4Ny4wNzQ3IDEwLjgzNiA4NS4wMzc1IDExLjA5ODVDODQuMDM0IDExLjIyODggODMuMTY2MyAxMS44MDM3IDgyLjY2MSAxMi42ODA0QzgyLjE1NTcgMTMuNTUzNSA4Mi4wODYxIDE0LjU5MDggODIuNDczNiAxNS41MjQ2QzgyLjg2MSAxNi40NTg0IDgzLjY0MTIgMTcuMTQyMyA4NC42MTc5IDE3LjQwMjlDODUuNTk0NSAxNy42NjE4IDg2LjYxNTggMTcuNDU4MyA4Ny40MTc1IDE2LjgzODdDODguMTE3NCAxNi4yOTc3IDg4Ljk0NTggMTUuNjU2OCA4OS44MjYxIDE0Ljk0OTdDOTAuOTg4NCAxNC4wMTQxIDkyLjI0NTMgMTIuOTU4OSA5My40NDUyIDExLjgzMjNDOTMuODI5IDExLjgyNTIgOTQuMjExMSAxMS44MjUyIDk0LjU5MTQgMTEuODI4N0M5NS41NTU2IDExLjgzOTQgOTYuNDk4MyAxMS44ODk0IDk3LjM3NSAxMS45OTY2Qzk3LjI1MTggMTIuMDc4NyA5Ny4xMjUgMTIuMTYyNiA5Ni45OTQ3IDEyLjI0NjVDOTEuMTAwOSAxNi4wMjEgODkuMjcyNiAxNy40OTc2IDg5LjE5NzYgMTcuNTU4M0M4OC45NjczIDE3Ljc0NTcgODguODcyNiAxOC4wNTY0IDg4Ljk2MTkgMTguMzQwM0M4OS4wNTEyIDE4LjYyNDIgODkuMzAyOSAxOC44MjU5IDg5LjYwMTEgMTguODQ5MUM4OS45OTc1IDE4Ljg3OTUgOTEuNDUwOCAxOC45ODMxIDkzLjI4NjMgMTguOTgzMUM5Ni44NSAxOC45ODMxIDEwMS44NTMgMTguNTkzOCAxMDMuMzUxIDE2LjUzMTZDMTAzLjczOCAxNS45OTc4IDEwNC4wOSAxNS4wOTc5IDEwMy41NjkgMTMuODM5MkMxMDMuNTU0IDEzLjgwNyAxMDMuNTM3IDEzLjc3ODUgMTAzLjUyMiAxMy43NDYzQzEwMy4wMDQgMTIuNTg5MyAxMDEuOTY0IDExLjc5NDggMTAwLjYwMSAxMS4yNzE3QzEwMS42MDggMTAuMjc5IDEwMi4xNTMgOS40MTY1OSAxMDIuNTk5IDguNzExMzNDMTAzLjMzMyA3LjU1MDc5IDEwMy42NjcgNy4wMjA1MSAxMDUuNDc5IDYuNzU4MDVDMTA1Ljc4NiA2LjcxMzQxIDEwNi4wMzMgNi40Nzc3MyAxMDYuMDkyIDYuMTcyNDJDMTA2LjE0OSA1Ljg2NzEgMTA2LjAwOCA1LjU1ODIyIDEwNS43MzYgNS40MDQ2N0wxMDUuNzMzIDUuMzk1NzRaTTk0Ljc0MzIgNi4xNDU2M0M5MS4zMzEyIDYuODk1NTMgODkuMDQ0IDcuMzI5MzkgODcuNjE1NyA3LjU3NTc4QzkwLjI4NDkgNC43NDA0OCA5NC4wMzI2IDEuNDYyMzkgOTYuMDM3NyAxLjQ2MjM5Qzk2LjEyNTEgMS40NjIzOSA5Ni4yMDkgMS40Njc3NCA5Ni4yODk0IDEuNDgyMDNDOTYuNTU1NCAxLjUyNDg4IDk2Ljk0MjkgMS42NjA1NyA5Ny4yMjg1IDIuMzQ5NzZDOTcuMjU1MyAyLjQxNTgyIDk3LjI3MzIgMi40ODU0NSA5Ny4yOTQ2IDIuNTU1MDhDOTcuNTgyMSAzLjQ3ODE2IDk3LjMxNzggNC41NTgzNyA5Ni42ODkzIDUuNzA2NDFWNS43MDk5OEM5Ni40NTkgNS43NjE3NiA5Ni4yMDU1IDUuODE4OSA5NS45NTIgNS44NzYwM0w5NS45MzQxIDUuODc5NkM5NS40NzcgNS45ODMxNiA5NS4wMjg5IDYuMDgzMTQgOTQuNzQzMiA2LjE0NTYzWk04Ny40NDQzIDE0Ljk2NzZDODcuMTA2OCAxNS4yMyA4Ni43OTc5IDE1LjQ2OTMgODYuNTI0OCAxNS42OEM4Ni4wODU1IDE2LjAxOTIgODUuNTI2NyAxNi4xMzM1IDg0Ljk5MSAxNS45OTA2Qzg0LjQ1NzIgMTUuODQ3OCA4NC4wMzA1IDE1LjQ3NDYgODMuODE4IDE0Ljk2MjJDODMuNjA1NSAxNC40NTE2IDgzLjY0MyAxMy44ODM4IDgzLjkxOTggMTMuNDA1M0M4NC4xOTY1IDEyLjkyNjggODQuNjcxNCAxMi42MTA4IDg1LjIyMzIgMTIuNTM5M0M4Ni42MjY1IDEyLjM1OSA4OC44MDQ4IDEyLjA3NjkgOTEuMTQzNyAxMS45MjUySDkxLjE0MDJDODkuODA4MiAxMy4wOTgyIDg4LjQ5MDUgMTQuMTQ5OCA4Ny40NDI1IDE0Ljk2NzZIODcuNDQ0M1pNMTAyLjIxOSAxNC4zOTA5QzEwMi4yNTMgMTQuNDcxMiAxMDIuMjc4IDE0LjU0OCAxMDIuMjk5IDE0LjYxOTRDMTAyLjQ2MiAxNS4xNjQgMTAyLjMwOCAxNS40NzQ2IDEwMi4xNjcgMTUuNjY3NUMxMDEuMDE5IDE3LjI0NzYgOTUuNzg5NSAxNy42MTkgOTEuNzI1OCAxNy40OTU4QzkyLjkxMTMgMTYuNjYwMiA5NC44MzQzIDE1LjM0NzkgOTcuNzc2NyAxMy40NjQyQzk4LjM2OTUgMTMuMDgzOSA5OC44ODU0IDEyLjcxNzkgOTkuMzM3MiAxMi4zNjI2QzEwMC43NDkgMTIuNzU1NCAxMDEuODA1IDEzLjM5NDYgMTAyLjIxNyAxNC4zODkxTDEwMi4yMTkgMTQuMzkwOVpNMTAxLjM2NCA3LjkyNTczQzEwMC44NTcgOC43MjkxOSAxMDAuMjYgOS42NzM2OSA5OC45NjU4IDEwLjc4NzhDOTguMDEyNCAxMC41ODA3IDk2Ljk2OTcgMTAuNDU5MyA5NS44ODU5IDEwLjM5ODZDOTUuNTY4MSAxMC4zODA3IDk1LjI0ODUgMTAuMzY2NSA5NC45MjM1IDEwLjM1OTNDOTUuMzIxNyA5Ljk0MTUxIDk1LjcwMzggOS41MTgzNiA5Ni4wNjI2IDkuMDkxNjRDOTYuMTg1OCA4Ljk0NTIzIDk2LjMwNTUgOC43OTg4MiA5Ni40MjMzIDguNjUyNDFDOTYuODY0MyA4LjEwMDcxIDk3LjI2NDMgNy41NDcyMiA5Ny42MDUzIDYuOTkzNzNDOTcuNzE5NSA2Ljk2Njk0IDk3LjgwMzUgNi45NDkwOSA5Ny44NDQ1IDYuOTM4MzhDOTguMzQ0NSA2LjgyNDExIDk4Ljc5OTcgNi43MTY5OCA5OS4yMTkzIDYuNjE4NzhDMTAxLjEzOSA2LjE2ODg1IDEwMi4xOTcgNS45MTg4OCAxMDMuMDk5IDUuOTkwM0MxMDIuMjc0IDYuNDc3NzMgMTAxLjg0OSA3LjE1MDg1IDEwMS4zNjIgNy45MjM5NUwxMDEuMzY0IDcuOTI1NzNaIiBmaWxsPSJ1cmwoI3BhaW50MV9saW5lYXJfMjAzNzZfNzQ4NCkiLz4NCjxnIG9wYWNpdHk9IjAuNyI+DQo8cGF0aCBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIGQ9Ik05Ni40MjM4IDguNjQ3NzNDOTYuODY0OSA4LjA5NTk0IDk3LjI2NDkgNy41NDIzNSA5Ny42MDYgNi45ODg3N0w5NS41MDU5IDcuNDYxOTlDOTUuMTg0NSA3Ljg3NDUgOTQuODI3MyA4LjI4ODggOTQuNDU0MSA4LjcwMTMxTDk2LjQyNTYgOC42NDU5NUw5Ni40MjM4IDguNjQ3NzNaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXJfMjAzNzZfNzQ4NCkiLz4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTk2LjY4NzUgNS43MDJMOTguNDYwOCA1LjI5NDg1Qzk4LjkgNC4xNDMwNCA5OS4wMDU0IDMuMDI1MTYgOTguNjQ0NyAxLjk5MTIxTDk3LjI5MjkgMi41NTAxNUM5Ny41ODA0IDMuNDczMzkgOTcuMzE2MSA0LjU1Mzc2IDk2LjY4NzUgNS43MDJaIiBmaWxsPSJ1cmwoI3BhaW50M19saW5lYXJfMjAzNzZfNzQ4NCkiLz4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTk0LjkyMzcgMTAuMzU0M0M5NS4zMjE5IDkuOTM2NDQgOTUuNzA0IDkuNTEzMjIgOTYuMDYzIDkuMDg2NDNMOTQuMDUwNCA5LjEzODIxQzkzLjY2MTEgOS41NTI1MSA5My4yNTU4IDkuOTYzMjMgOTIuODM3OSAxMC4zNjY4QzkzLjY5MzMgMTAuMzQxOCA5NC41MTgzIDEwLjMzODIgOTQuOTIzNyAxMC4zNTQzWiIgZmlsbD0idXJsKCNwYWludDRfbGluZWFyXzIwMzc2Xzc0ODQpIi8+DQo8cGF0aCBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIGQ9Ik05OS4zMzY5IDEyLjM1OThDMTAwLjc0OSAxMi43NTI3IDEwMS44MDUgMTMuMzkyIDEwMi4yMTcgMTQuMzg2NkMxMDIuMjUxIDE0LjQ2NyAxMDIuMjc2IDE0LjU0MzggMTAyLjI5OCAxNC42MTUyTDEwMy41MTcgMTMuNzM0OEMxMDMgMTIuNTc3NyAxMDEuOTU4IDExLjc4MyAxMDAuNTk2IDExLjI1OThDMTAwLjA3MSAxMS43NzA1IDk5LjkzNTEgMTEuODg0OCA5OS4zMzY5IDEyLjM1OThaIiBmaWxsPSJ1cmwoI3BhaW50NV9saW5lYXJfMjAzNzZfNzQ4NCkiLz4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTk1Ljg4NjEgMTAuMzkzNkw5NC41ODc5IDExLjgxODZDOTUuNTUyMiAxMS44MjkzIDk2LjQ5NTEgMTEuODc5MyA5Ny4zNzE5IDExLjk4NjRDOTcuOTgwOCAxMS41MDk2IDk4LjQ5ODcgMTEuMTU5NiA5OC45NjY2IDEwLjc4MjhDOTguMDEzIDEwLjU3NTcgOTYuOTcwMSAxMC40NTQzIDk1Ljg4NjEgMTAuMzkzNloiIGZpbGw9InVybCgjcGFpbnQ2X2xpbmVhcl8yMDM3Nl83NDg0KSIvPg0KPHBhdGggc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBkPSJNOTEuMTQzNiAxMS45MjE5SDkxLjE0MDFDODkuODA4MSAxMy4wOTUgODguNDkwNCAxNC4xNDY2IDg3LjQ0MjQgMTQuOTY0M0w4OS44MjI0IDE0Ljk0MTFDOTAuOTg0NyAxNC4wMDU2IDkyLjI0MTcgMTIuOTUwNCA5My40NDE1IDExLjgyMzdDOTIuOTA0MSAxMS44NDM0IDkxLjczNDYgMTEuODc5MSA5MS4xNDM2IDExLjkyMzdWMTEuOTIxOVoiIGZpbGw9InVybCgjcGFpbnQ3X2xpbmVhcl8yMDM3Nl83NDg0KSIvPg0KPC9nPg0KPGRlZnM+DQo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMjAzNzZfNzQ4NCIgeDE9IjExMi4yNzgiIHkxPSItMi4wMTE1NyIgeDI9IjY2Ljc1NTYiIHkyPSIxOS45ODU5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBvZmZzZXQ9IjAuMiIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTI1MUNCIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzBBODdCMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMDRBRTlFIi8+DQo8c3RvcCBvZmZzZXQ9IjAuODUiIHN0b3AtY29sb3I9IiMwMUM2OTMiLz4NCjxzdG9wIG9mZnNldD0iMC45NSIgc3RvcC1jb2xvcj0iIzAwQ0Y4RiIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8yMDM3Nl83NDg0IiB4MT0iODIuMjI1NCIgeTE9IjkuNDkzMzYiIHgyPSIxMDYuMSIgeTI9IjkuNDkzMzYiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIG9mZnNldD0iMC4wNSIgc3RvcC1jb2xvcj0iIzAwQ0Y4RiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjE1IiBzdG9wLWNvbG9yPSIjMDFDNjkzIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMzEiIHN0b3AtY29sb3I9IiMwNEFFOUUiLz4NCjxzdG9wIG9mZnNldD0iMC41IiBzdG9wLWNvbG9yPSIjMEE4N0IxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNzMiIHN0b3AtY29sb3I9IiMxMjUxQ0IiLz4NCjxzdG9wIG9mZnNldD0iMC44IiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDJfbGluZWFyXzIwMzc2Xzc0ODQiIHgxPSI5Ni4xMTg0IiB5MT0iOC42OTc3MyIgeDI9Ijk1Ljk2MzEiIHkyPSI3LjIwNjYzIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAiLz4NCjxzdG9wIG9mZnNldD0iMC4xMyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjAyIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjQxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMTgiLz4NCjxzdG9wIG9mZnNldD0iMC41NSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjMxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNjkiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC40OSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjg0IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNzEiLz4NCjxzdG9wIG9mZnNldD0iMC45OCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjk2Ii8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxNTNFRDUiLz4NCjwvbGluZWFyR3JhZGllbnQ+DQo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50M19saW5lYXJfMjAzNzZfNzQ4NCIgeDE9Ijk3Ljc0NjQiIHkxPSIyLjcwMDE1IiB4Mj0iOTcuODAxOCIgeTI9IjYuMTU1NTgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjEzIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDIiLz4NCjxzdG9wIG9mZnNldD0iMC4yNyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNDEiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4xOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjU1IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMzEiLz4NCjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuODQiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC43MSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjk4IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuOTYiLz4NCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ0X2xpbmVhcl8yMDM3Nl83NDg0IiB4MT0iOTQuNTM2MSIgeTE9IjkuMDI1NzEiIHgyPSI5NC4zMzI2IiB5Mj0iMTAuNjk5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAiLz4NCjxzdG9wIG9mZnNldD0iMC4xMyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjAyIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjQxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMTgiLz4NCjxzdG9wIG9mZnNldD0iMC41NSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjMxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNjkiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC40OSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjg0IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNzEiLz4NCjxzdG9wIG9mZnNldD0iMC45OCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjk2Ii8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxNTNFRDUiLz4NCjwvbGluZWFyR3JhZGllbnQ+DQo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50NV9saW5lYXJfMjAzNzZfNzQ4NCIgeDE9IjEwMi43MjkiIHkxPSIxMy42NjM5IiB4Mj0iOTkuMzYzNSIgeTI9IjExLjY1MjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjEzIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDIiLz4NCjxzdG9wIG9mZnNldD0iMC4yNyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNDEiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4xOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjU1IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMzEiLz4NCjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuODQiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC43MSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjk4IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuOTYiLz4NCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ2X2xpbmVhcl8yMDM3Nl83NDg0IiB4MT0iOTUuNjc5MyIgeTE9IjEwLjkxNjYiIHgyPSI5OC43NzQ0IiB5Mj0iMTIuMDM2OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KPHN0b3Agc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMTMiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDgiLz4NCjxzdG9wIG9mZnNldD0iMC40MSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjE4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNTUiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4zMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNDkiLz4NCjxzdG9wIG9mZnNldD0iMC44NCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjcxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuOTgiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC45NiIvPg0KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDdfbGluZWFyXzIwMzc2Xzc0ODQiIHgxPSI5MC4zMzMiIHkxPSIxNC4xNzUyIiB4Mj0iOTAuNzE4NyIgeTI9IjExLjQxODQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjEzIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDIiLz4NCjxzdG9wIG9mZnNldD0iMC4yNyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNDEiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4xOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjU1IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMzEiLz4NCjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuODQiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC43MSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjk4IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuOTYiLz4NCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjwvZGVmcz4NCjwvc3ZnPg0K");
  --logo-mark: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMTkiIHZpZXdCb3g9IjAgMCAyNCAxOSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxwYXRoIGQ9Ik0yMy4zNjE5IDUuMzUyMjNDMjEuMTM4NiA0LjA4MzUxIDE5Ljk4NTIgNC4zNTUgMTYuNTYwNSA1LjE1ODgxQzE2LjQyMjEgNS4xOTA3NSAxNi4yODAyIDUuMjI0NDcgMTYuMTM0NyA1LjI1ODE4VjUuMjU0NjNDMTYuNTczIDQuMTEwMTMgMTYuNjc1OSAyLjk5OTM0IDE2LjMxNzQgMS45NzE5NEMxNi4yOTQ0IDEuOTA0NTEgMTYuMjc0OSAxLjgzNTMxIDE2LjI0NjUgMS43Njk2NkMxNS43MjgzIDAuNTE4Njg2IDE0Ljg0ODIgMC4xMzM2MzYgMTQuMjAwNSAwLjAzMjQ5MzZDMTAuNDEyMSAtMC41NjE5MzkgMy42NjkzMSA3LjE4NTIxIDIuOTEzNDEgOC4wNzI0MkMyLjcyMTc3IDguMjk3NzcgMi42ODYyOCA4LjYxNzE3IDIuODIyOTEgOC44Nzk3OUMyLjk1OTU0IDkuMTQwNjMgMy4yNDE2NyA5LjI5MTQ1IDMuNTM4IDkuMjYzMDZDMy42MzM4MiA5LjI1MjQyIDUuOTU0NzcgOS4wMDQgMTIuNzQ5MSA3LjUxMzQ4QzEyLjg3MTUgNy40ODY4NiAxMy4wMjU5IDcuNDUzMTUgMTMuMTk4IDcuNDE0MTFDMTIuODc4NiA3LjgyNCAxMi41MjM3IDguMjM1NjcgMTIuMTUyOSA4LjY0NTU2QzEyLjAyMTUgOC43ODkyOSAxMS44OTAyIDguOTM0NzkgMTEuNzUzNiA5LjA3ODUyQzExLjM2NjggOS40OTAxOSAxMC45NjQgOS44OTgzMSAxMC41NDg4IDEwLjI5OTNDNy42NzU5NyAxMC4zODk4IDQuODE5MTQgMTAuNzU4OSAyLjc5NDUyIDExLjAxOTdDMS43OTcyOSAxMS4xNDkzIDAuOTM0OTE2IDExLjcyMDYgMC40MzI3NTMgMTIuNTkxOUMtMC4wNjk0MTA3IDEzLjQ1OTYgLTAuMTM4NjExIDE0LjQ5MDUgMC4yNDY0NCAxNS40MTg1QzAuNjMxNDkxIDE2LjM0NjYgMS40MDY5MiAxNy4wMjYyIDIuMzc3NTMgMTcuMjg1MkMzLjM0ODE0IDE3LjU0MjUgNC4zNjMxMSAxNy4zNDAzIDUuMTU5ODMgMTYuNzI0NUM1Ljg1NTQxIDE2LjE4NjkgNi42Nzg3NCAxNS41NDk5IDcuNTUzNTMgMTQuODQ3MkM4LjcwODY5IDEzLjkxNzQgOS45NTc4OCAxMi44Njg3IDExLjE1MDMgMTEuNzQ5QzExLjUzMTggMTEuNzQxOSAxMS45MTE1IDExLjc0MTkgMTIuMjg5NSAxMS43NDU1QzEzLjI0NzcgMTEuNzU2MSAxNC4xODQ2IDExLjgwNTggMTUuMDU1OCAxMS45MTIzQzE0LjkzMzQgMTEuOTkzOSAxNC44MDc0IDEyLjA3NzMgMTQuNjc3OSAxMi4xNjA3QzguODIwNDggMTUuOTExOCA3LjAwMzQ2IDE3LjM3OTMgNi45Mjg5NCAxNy40Mzk2QzYuNzAwMDQgMTcuNjI1OSA2LjYwNTk5IDE3LjkzNDcgNi42OTQ3MSAxOC4yMTY4QzYuNzgzNDMgMTguNDk5IDcuMDMzNjMgMTguNjk5NSA3LjMyOTk1IDE4LjcyMjVDNy43MjM4OCAxOC43NTI3IDkuMTY4MjYgMTguODU1NiAxMC45OTI0IDE4Ljg1NTZDMTQuNTM0MSAxOC44NTU2IDE5LjUwNjEgMTguNDY4OCAyMC45OTQ4IDE2LjQxOTNDMjEuMzc5OSAxNS44ODg4IDIxLjcyOTQgMTQuOTk0NSAyMS4yMTEzIDEzLjc0MzVDMjEuMTk3MSAxMy43MTE2IDIxLjE3OTQgMTMuNjgzMiAyMS4xNjUyIDEzLjY1MTJDMjAuNjUwNiAxMi41MDE0IDE5LjYxNjEgMTEuNzExOCAxOC4yNjIyIDExLjE5MTlDMTkuMjYzIDEwLjIwNTMgMTkuODA0MiA5LjM0ODI0IDIwLjI0NzggOC42NDczNEMyMC45NzcxIDcuNDkzOTYgMjEuMzA4OSA2Ljk2Njk1IDIzLjEwOTkgNi43MDYxMUMyMy40MTUyIDYuNjYxNzUgMjMuNjYgNi40Mjc1MyAyMy43MTg2IDYuMTI0MUMyMy43NzU0IDUuODIwNjcgMjMuNjM1MiA1LjUxMzcgMjMuMzY1NSA1LjM2MTFMMjMuMzYxOSA1LjM1MjIzWk0xMi40NDAzIDYuMDk3NDlDOS4wNDkzOCA2Ljg0Mjc0IDYuNzc2MzMgNy4yNzM5MyA1LjM1Njc5IDcuNTE4OEM4LjAwOTU2IDQuNzAxMDEgMTEuNzM0MSAxLjQ0MzE2IDEzLjcyNjggMS40NDMxNkMxMy44MTM3IDEuNDQzMTYgMTMuODk3MSAxLjQ0ODQ5IDEzLjk3NyAxLjQ2MjY4QzE0LjI0MTQgMS41MDUyNyAxNC42MjY0IDEuNjQwMTIgMTQuOTEwMyAyLjMyNTA1QzE0LjkzNjkgMi4zOTA3MSAxNC45NTQ3IDIuNDU5OTEgMTQuOTc2IDIuNTI5MTFDMTUuMjYxNiAzLjQ0NjQ5IDE0Ljk5OSA0LjUyMDAyIDE0LjM3NDQgNS42NjA5OFY1LjY2NDUzQzE0LjE0NTUgNS43MTU5OCAxMy44OTM2IDUuNzcyNzcgMTMuNjQxNiA1LjgyOTU1TDEzLjYyMzkgNS44MzMxQzEzLjE2OTYgNS45MzYwMSAxMi43MjQyIDYuMDM1MzggMTIuNDQwMyA2LjA5NzQ5Wk01LjE4NjQ1IDE0Ljg2NDlDNC44NTEwOCAxNS4xMjU4IDQuNTQ0MTEgMTUuMzYzNSA0LjI3MjYyIDE1LjU3MjlDMy44MzYxMSAxNS45MTAxIDMuMjgwNzEgMTYuMDIzNiAyLjc0ODM4IDE1Ljg4MTdDMi4yMTc4MyAxNS43Mzk3IDEuNzkzNzQgMTUuMzY4OSAxLjU4MjU4IDE0Ljg1OTZDMS4zNzE0MyAxNC4zNTIxIDEuNDA4NjkgMTMuNzg3OSAxLjY4MzczIDEzLjMxMjNDMS45NTg3NiAxMi44MzY4IDIuNDMwNzYgMTIuNTIyNyAyLjk3OTA2IDEyLjQ1MTdDNC4zNzM3NiAxMi4yNzI1IDYuNTM4NTYgMTEuOTkyMSA4Ljg2MzA2IDExLjg0MTNIOC44NTk1MkM3LjUzNTc5IDEzLjAwNzEgNi4yMjYyNiAxNC4wNTIyIDUuMTg0NjcgMTQuODY0OUg1LjE4NjQ1Wk0xOS44Njk4IDE0LjI5MThDMTkuOTAzNiAxNC4zNzE2IDE5LjkyODQgMTQuNDQ3OSAxOS45NDk3IDE0LjUxODlDMjAuMTExMiAxNS4wNjAxIDE5Ljk1ODYgMTUuMzY4OSAxOS44MTg0IDE1LjU2MDVDMTguNjc3NCAxNy4xMzA5IDEzLjQ4MDEgMTcuNSA5LjQ0MTUyIDE3LjM3NzVDMTAuNjE5NyAxNi41NDcxIDEyLjUzMDggMTUuMjQyOSAxNS40NTUxIDEzLjM3MDlDMTYuMDQ0MiAxMi45OTI5IDE2LjU1NyAxMi42MjkyIDE3LjAwNTkgMTIuMjc2QzE4LjQwOTUgMTIuNjY2NCAxOS40NTgyIDEzLjMwMTcgMTkuODY4MSAxNC4yOUwxOS44Njk4IDE0LjI5MThaTTE5LjAxOTkgNy44NjY1OUMxOC41MTYgOC42NjUwOCAxNy45MjMzIDkuNjAzNzUgMTYuNjM2OCAxMC43MTFDMTUuNjg5MyAxMC41MDUyIDE0LjY1MyAxMC4zODQ1IDEzLjU3NTkgMTAuMzI0MkMxMy4yNjAxIDEwLjMwNjQgMTIuOTQyNSAxMC4yOTIyIDEyLjYxOTUgMTAuMjg1MUMxMy4wMTUyIDkuODY5OTIgMTMuMzk1IDkuNDQ5MzggMTMuNzUxNiA5LjAyNTI5QzEzLjg3NDEgOC44Nzk3OSAxMy45OTI5IDguNzM0MjggMTQuMTEgOC41ODg3OEMxNC41NDgzIDguMDQwNDggMTQuOTQ1OCA3LjQ5MDQxIDE1LjI4NDcgNi45NDAzNEMxNS4zOTgzIDYuOTEzNzIgMTUuNDgxNyA2Ljg5NTk4IDE1LjUyMjUgNi44ODUzM0MxNi4wMTkzIDYuNzcxNzcgMTYuNDcxOCA2LjY2NTMgMTYuODg4OCA2LjU2NzcxQzE4Ljc5NjMgNi4xMjA1NSAxOS44NDg1IDUuODcyMTMgMjAuNzQ0NiA1Ljk0MzExQzE5LjkyNDggNi40Mjc1MyAxOS41MDI1IDcuMDk2NDkgMTkuMDE4MSA3Ljg2NDgxTDE5LjAxOTkgNy44NjY1OVoiIGZpbGw9InVybCgjcGFpbnQwX2xpbmVhcl8xNTQ2Ml8yNzEwMykiLz4NCjxkZWZzPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyXzE1NDYyXzI3MTAzIiB4MT0iLTAuMDAwMjA2NjYzIiB5MT0iOS40MjQ1NCIgeDI9IjIzLjcyNzUiIHkyPSI5LjQyNDU0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBvZmZzZXQ9IjAuMDUiIHN0b3AtY29sb3I9IiMwMENGOEYiLz4NCjxzdG9wIG9mZnNldD0iMC4xNSIgc3RvcC1jb2xvcj0iIzAxQzY5MyIvPg0KPHN0b3Agb2Zmc2V0PSIwLjMxIiBzdG9wLWNvbG9yPSIjMDRBRTlFIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzBBODdCMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjczIiBzdG9wLWNvbG9yPSIjMTI1MUNCIi8+DQo8c3RvcCBvZmZzZXQ9IjAuOCIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjwvZGVmcz4NCjwvc3ZnPg0K");
  --logo-dark: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTA3IiBoZWlnaHQ9IjQ1IiB2aWV3Qm94PSIwIDAgMTA3IDQ1IiBmaWxsPSJub25lIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPg0KPHBhdGggZD0iTTIuMzk3ODcgMjQuNDA0MkMyLjM5Nzg3IDIyLjMxNTIgMy41NDk0OSAyMS4xMTcyIDUuNTY4ODQgMjEuMTE3Mkg2LjM1NjIyQzguMzc1NTggMjEuMTE3MiA5LjUyNzE5IDIyLjMxNTIgOS41MjcxOSAyNC40MDQyVjMyLjUyMjZIMTEuOTI1MVYyNC4yMDZDMTEuOTI1MSAyMC43ODUxIDEwLjE1MDMgMTguOTc0NiA2LjM1NjIyIDE4Ljk3NDZINS41Njg4NEMxLjc3NDc0IDE4Ljk3NDYgMCAyMC43ODUxIDAgMjQuMjA2VjMyLjUyMjZIMi4zOTc4N1YyNC40MDQyWiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik0xOS4zMjg2IDMyLjUyMDVDMjEuNTA2OSAzMi41MjA1IDIzLjAyNDUgMzEuNjY1MyAyMy45NjcyIDI5LjY5NzdIMjQuMTgzMlYzMi41MjA1SDI2LjU3NzVWMTguOTcwN0gyNC4xODMyVjIxLjg0ODlIMjMuOTY3MkMyMy4wMTkxIDE5Ljg0NTYgMjEuNDY1OCAxOC45NzA3IDE5LjIxNjEgMTguOTcwN0MxNy40MDc0IDE4Ljk3MDcgMTUuOTU3NiAxOS41ODQ5IDE0LjkwNiAyMC43OTcyQzEzLjgyNzYgMjIuMDM2MyAxMy4yODEyIDIzLjcwMjIgMTMuMjgxMiAyNS43NDY1QzEzLjI4MTIgMjcuNzkwOCAxMy44MzY1IDI5LjQ2MiAxNC45MzQ2IDMwLjY2NzJDMTYuMDIwMSAzMS45MTUyIDE3LjQ1NzQgMzIuNTIyMyAxOS4zMjg2IDMyLjUyMjNWMzIuNTIwNVpNMjAuMTE0MiAyMS4xMTE1QzIzLjA5OTUgMjEuMTExNSAyNC4zMjQzIDIyLjYyNzMgMjQuMzI0MyAyNS43NDY1QzI0LjMyNDMgMjguODY1NyAyMy4wOTk1IDMwLjM4MTUgMjAuMTE0MiAzMC4zODE1QzE3LjEyODkgMzAuMzgxNSAxNS43MDQxIDI4Ljg2NTcgMTUuNzA0MSAyNS43NDY1QzE1LjcwNDEgMjIuNjI3MyAxNy4xNDY4IDIxLjExMTUgMjAuMTE0MiAyMS4xMTE1WiIgZmlsbD0iYmxhY2siLz4NCjxwYXRoIGQ9Ik01MS40OTc4IDI2LjY0M0M1MS40OTc4IDIzLjI0NyA1My4wNDc2IDIxLjIxMzQgNTUuNjQ3MiAyMS4xOTczVjE4Ljk3MjdDNTMuODk3NSAxOS4wNjczIDUxLjk0MjQgMjAuMTcwNyA1MS45NDI0IDIxLjg1MDhINTEuNzI0NlYxOC45NzI3SDQ5LjMzMlYzMi41MjI1SDUxLjQ5NzhWMjYuNjQ0OFYyNi42NDNaIiBmaWxsPSJibGFjayIvPg0KPHBhdGggZD0iTTQxLjY3NzcgMzIuNTIwNUg0NC41NTk1TDQ4LjM3NSAxOC45NzA3SDQ1Ljc1NzVMNDMuMTcwNCAzMC4zMzE2TDQyLjcxNjkgMzAuMzQ3NkwzOS4zNTMxIDE4Ljk3MDdIMzYuNzc2N0wzMy40MTExIDMwLjI5NDFMMzIuOTU3NiAzMC4yNzQ0TDMwLjQxMTUgMTguOTcwN0gyNy43NjM3TDMxLjU5NTMgMzIuNTIwNUgzNC40NTJMMzguMDk0MyAyMS4xMzI5TDQxLjY3NzcgMzIuNTIwNVoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBkPSJNNzguOTQwNiAyNC45OTI5TDc1LjkxNzggMjQuNDYwOEM3NC42MDAxIDI0LjI1NTUgNzQuMDM5NSAyMy43MDkxIDc0LjAzOTUgMjIuNjMyNUM3NC4wMzk1IDIxLjc3MTkgNzQuNDk4NCAyMC43NDUzIDc2LjY4MzggMjAuNzQ1M0M3OC42NzgxIDIwLjc0NTMgNzkuNDQ3NiAyMS4zNDUyIDc5LjcxMTkgMjMuMTgyNEw4MS44Nzk0IDIyLjYyODlDODEuMzY3IDIwLjE2NjggNzkuNjI4IDE4Ljk2ODggNzYuNTcxMyAxOC45Njg4QzczLjUxNDYgMTguOTY4OCA3MS42NDcgMjAuNDM2NCA3MS42NDcgMjIuODAwM0M3MS42NDcgMjQuODg0IDcyLjgyMTggMjYuMDkyNyA3NS4yNDExIDI2LjQ5NDRMNzcuNjc0NyAyNi45NDI2Qzc5LjMxMDIgMjcuMjA1IDc5Ljg2MDEgMjcuNjg3MSA3OS44NjAxIDI4Ljg1M0M3OS44NjAxIDI5LjY4ODYgNzkuMzcyNyAzMC42ODMxIDc3LjA0OCAzMC42ODMxQzc0Ljk0MjkgMzAuNjgzMSA3My45NTIgMjkuOTcyNSA3My41ODYgMjguMTY3NEw3MS4yOTg4IDI4Ljg0NDFDNzEuODkxNiAzMS4xNDczIDczLjk1MDIgMzIuNTE1IDc2Ljg1MzQgMzIuNTE1QzgwLjIxOSAzMi41MTUgODIuMjI3NiAzMC45OTkxIDgyLjIyNzYgMjguNDU4NEM4Mi4yMjc2IDI1LjkxNzcgODAuNDQyMSAyNS4yNDEgNzguOTQ0MSAyNC45ODc1TDc4Ljk0MDYgMjQuOTkyOVoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBkPSJNNjEuOTM0MSAzMi41MjA1QzY0LjExMjMgMzIuNTIwNSA2NS42MyAzMS42NjUzIDY2LjU3MjcgMjkuNjk3N0g2Ni43ODg3VjMyLjUyMDVINjkuMTgzVjE4Ljk3MDdINjYuNzg4N1YyMS44NDg5SDY2LjU3MjdDNjUuNjI0NiAxOS44NDU2IDY0LjA3MTMgMTguOTcwNyA2MS44MjE2IDE4Ljk3MDdDNjAuMDEyOSAxOC45NzA3IDU4LjU2MzEgMTkuNTg0OSA1Ny41MTE1IDIwLjc5NzJDNTYuNDMzMSAyMi4wMzYzIDU1Ljg4NjcgMjMuNzAyMiA1NS44ODY3IDI1Ljc0NjVDNTUuODg2NyAyNy43OTA4IDU2LjQ0MiAyOS40NjIgNTcuNTQwMSAzMC42NjcyQzU4LjYyNTYgMzEuOTE1MiA2MC4wNjI5IDMyLjUyMjMgNjEuOTM0MSAzMi41MjIzVjMyLjUyMDVaTTYyLjcxOTcgMjEuMTExNUM2NS43MDQ5IDIxLjExMTUgNjYuOTI5OCAyMi42MjczIDY2LjkyOTggMjUuNzQ2NUM2Ni45Mjk4IDI4Ljg2NTcgNjUuNzA0OSAzMC4zODE1IDYyLjcxOTcgMzAuMzgxNUM1OS43MzQ0IDMwLjM4MTUgNTguMzA5NiAyOC44NjU3IDU4LjMwOTYgMjUuNzQ2NUM1OC4zMDk2IDIyLjYyNzMgNTkuNzUyMiAyMS4xMTE1IDYyLjcxOTcgMjEuMTExNVoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBkPSJNMzEuMTgyNiAzNS43NTY0SDM2LjYwNTZWMzYuMzk0NEgzMS45MzA2VjM5LjIzMjRIMzYuMzA4NlYzOS44NzA0SDMxLjkzMDZWNDIuOTcyNEgzNi42NjA2VjQzLjYxMDRIMzEuMTgyNlYzNS43NTY0Wk00My4xMTUxIDQzLjYxMDRINDIuNDc3MVY0Mi41MzI0SDQyLjQ1NTFDNDIuMzgxOCA0Mi43MTU3IDQyLjI3MTggNDIuODg0NCA0Mi4xMjUxIDQzLjAzODRDNDEuOTg1OCA0My4xOTI0IDQxLjgyNDUgNDMuMzI0NCA0MS42NDExIDQzLjQzNDRDNDEuNDU3OCA0My41MzcgNDEuMjU5OCA0My42MTc3IDQxLjA0NzEgNDMuNjc2NEM0MC44NDE4IDQzLjczNSA0MC42MzY1IDQzLjc2NDQgNDAuNDMxMSA0My43NjQ0QzM5Ljk5ODUgNDMuNzY0NCAzOS42MjA4IDQzLjY4NzQgMzkuMjk4MSA0My41MzM0QzM4Ljk4MjggNDMuMzcyIDM4LjcxODggNDMuMTU1NyAzOC41MDYxIDQyLjg4NDRDMzguMjkzNSA0Mi42MDU3IDM4LjEzNTggNDIuMjg2NyAzOC4wMzMxIDQxLjkyNzRDMzcuOTMwNSA0MS41NjA3IDM3Ljg3OTEgNDEuMTc1NyAzNy44NzkxIDQwLjc3MjRDMzcuODc5MSA0MC4zNjkgMzcuOTMwNSAzOS45ODc3IDM4LjAzMzEgMzkuNjI4NEMzOC4xMzU4IDM5LjI2MTcgMzguMjkzNSAzOC45NDI3IDM4LjUwNjEgMzguNjcxNEMzOC43MTg4IDM4LjM5MjcgMzguOTgyOCAzOC4xNzI3IDM5LjI5ODEgMzguMDExNEMzOS42MjA4IDM3Ljg1IDM5Ljk5ODUgMzcuNzY5NCA0MC40MzExIDM3Ljc2OTRDNDAuNjQzOCAzNy43Njk0IDQwLjg0OTEgMzcuNzk1IDQxLjA0NzEgMzcuODQ2NEM0MS4yNTI1IDM3Ljg5NzcgNDEuNDQzMSAzNy45Nzg0IDQxLjYxOTEgMzguMDg4NEM0MS43OTUxIDM4LjE5MSA0MS45NDkxIDM4LjMxOTQgNDIuMDgxMSAzOC40NzM0QzQyLjIyMDUgMzguNjI3NCA0Mi4zMjY4IDM4LjgwNyA0Mi40MDAxIDM5LjAxMjRINDIuNDIyMVYzNS43NTY0SDQzLjExNTFWNDMuNjEwNFpNMzguNTcyMSA0MC43NzI0QzM4LjU3MjEgNDEuMDY1NyAzOC42MDUxIDQxLjM1OSAzOC42NzExIDQxLjY1MjRDMzguNzQ0NSA0MS45Mzg0IDM4Ljg1NDUgNDIuMTk1IDM5LjAwMTEgNDIuNDIyNEMzOS4xNTUxIDQyLjY0OTcgMzkuMzQ5NSA0Mi44MzY3IDM5LjU4NDEgNDIuOTgzNEMzOS44MTg4IDQzLjEyMjcgNDAuMTAxMSA0My4xOTI0IDQwLjQzMTEgNDMuMTkyNEM0MC43OTc4IDQzLjE5MjQgNDEuMTA1OCA0My4xMjI3IDQxLjM1NTEgNDIuOTgzNEM0MS42MTE4IDQyLjgzNjcgNDEuODE3MSA0Mi42NDk3IDQxLjk3MTEgNDIuNDIyNEM0Mi4xMzI1IDQyLjE5NSA0Mi4yNDYxIDQxLjkzODQgNDIuMzEyMSA0MS42NTI0QzQyLjM4NTUgNDEuMzU5IDQyLjQyMjEgNDEuMDY1NyA0Mi40MjIxIDQwLjc3MjRDNDIuNDIyMSA0MC40NzkgNDIuMzg1NSA0MC4xODk0IDQyLjMxMjEgMzkuOTAzNEM0Mi4yNDYxIDM5LjYxIDQyLjEzMjUgMzkuMzQ5NyA0MS45NzExIDM5LjEyMjRDNDEuODE3MSAzOC44OTUgNDEuNjExOCAzOC43MTE3IDQxLjM1NTEgMzguNTcyNEM0MS4xMDU4IDM4LjQyNTcgNDAuNzk3OCAzOC4zNTI0IDQwLjQzMTEgMzguMzUyNEM0MC4xMDExIDM4LjM1MjQgMzkuODE4OCAzOC40MjU3IDM5LjU4NDEgMzguNTcyNEMzOS4zNDk1IDM4LjcxMTcgMzkuMTU1MSAzOC44OTUgMzkuMDAxMSAzOS4xMjI0QzM4Ljg1NDUgMzkuMzQ5NyAzOC43NDQ1IDM5LjYxIDM4LjY3MTEgMzkuOTAzNEMzOC42MDUxIDQwLjE4OTQgMzguNTcyMSA0MC40NzkgMzguNTcyMSA0MC43NzI0Wk00OS41ODU1IDQzLjYxMDRINDguOTQ3NVY0Mi41ODc0SDQ4LjkyNTVDNDguNzQyMiA0Mi45Njg3IDQ4LjQ3NDUgNDMuMjYyIDQ4LjEyMjUgNDMuNDY3NEM0Ny43Nzc5IDQzLjY2NTQgNDcuMzkyOSA0My43NjQ0IDQ2Ljk2NzUgNDMuNzY0NEM0Ni42MDgyIDQzLjc2NDQgNDYuMzAwMiA0My43MTMgNDYuMDQzNSA0My42MTA0QzQ1Ljc5NDIgNDMuNTE1IDQ1LjU4ODkgNDMuMzc1NyA0NS40Mjc1IDQzLjE5MjRDNDUuMjczNSA0My4wMDkgNDUuMTU5OSA0Mi43ODU0IDQ1LjA4NjUgNDIuNTIxNEM0NS4wMTMyIDQyLjI1NzQgNDQuOTc2NSA0MS45NTY3IDQ0Ljk3NjUgNDEuNjE5NFYzNy45MzQ0SDQ1LjY2OTVWNDEuNjMwNEM0NS42ODQyIDQyLjE0MzcgNDUuODAxNSA0Mi41MzI0IDQ2LjAyMTUgNDIuNzk2NEM0Ni4yNDg5IDQzLjA2MDQgNDYuNjM3NSA0My4xOTI0IDQ3LjE4NzUgNDMuMTkyNEM0Ny40ODgyIDQzLjE5MjQgNDcuNzQ0OSA0My4xMyA0Ny45NTc1IDQzLjAwNTRDNDguMTcwMiA0Mi44NzM0IDQ4LjM0NjIgNDIuNzAxIDQ4LjQ4NTUgNDIuNDg4NEM0OC42MjQ5IDQyLjI3NTcgNDguNzI3NSA0Mi4wMzM3IDQ4Ljc5MzUgNDEuNzYyNEM0OC44NTk1IDQxLjQ4MzcgNDguODkyNSA0MS4yMDE0IDQ4Ljg5MjUgNDAuOTE1NFYzNy45MzQ0SDQ5LjU4NTVWNDMuNjEwNFpNNTUuNDQ5NyAzOS43MTY0QzU1LjM1NDQgMzkuMjkxIDU1LjE3ODQgMzguOTU3NCA1NC45MjE3IDM4LjcxNTRDNTQuNjY1MSAzOC40NzM0IDU0LjMwNTcgMzguMzUyNCA1My44NDM3IDM4LjM1MjRDNTMuNTEzNyAzOC4zNTI0IDUzLjIyNDEgMzguNDIyIDUyLjk3NDcgMzguNTYxNEM1Mi43MjU0IDM4LjcwMDcgNTIuNTE2NCAzOC44ODQgNTIuMzQ3NyAzOS4xMTE0QzUyLjE4NjQgMzkuMzM4NyA1Mi4wNjE3IDM5LjU5OSA1MS45NzM3IDM5Ljg5MjRDNTEuODkzMSA0MC4xNzg0IDUxLjg1MjcgNDAuNDcxNyA1MS44NTI3IDQwLjc3MjRDNTEuODUyNyA0MS4wNzMgNTEuODkzMSA0MS4zNyA1MS45NzM3IDQxLjY2MzRDNTIuMDYxNyA0MS45NDk0IDUyLjE4NjQgNDIuMjA2IDUyLjM0NzcgNDIuNDMzNEM1Mi41MTY0IDQyLjY2MDcgNTIuNzI1NCA0Mi44NDQgNTIuOTc0NyA0Mi45ODM0QzUzLjIyNDEgNDMuMTIyNyA1My41MTM3IDQzLjE5MjQgNTMuODQzNyA0My4xOTI0QzU0LjA1NjQgNDMuMTkyNCA1NC4yNTgxIDQzLjE1MiA1NC40NDg3IDQzLjA3MTRDNTQuNjM5NCA0Mi45OTA3IDU0LjgwODEgNDIuODgwNyA1NC45NTQ3IDQyLjc0MTRDNTUuMTAxNCA0Mi41OTQ3IDU1LjIyMjQgNDIuNDIyNCA1NS4zMTc3IDQyLjIyNDRDNTUuNDEzMSA0Mi4wMjY0IDU1LjQ3MTcgNDEuODEgNTUuNDkzNyA0MS41NzU0SDU2LjE4NjdDNTYuMDkxNCA0Mi4yNjQ3IDU1LjgzODQgNDIuODAzNyA1NS40Mjc3IDQzLjE5MjRDNTUuMDE3MSA0My41NzM3IDU0LjQ4OTEgNDMuNzY0NCA1My44NDM3IDQzLjc2NDRDNTMuNDExMSA0My43NjQ0IDUzLjAyNjEgNDMuNjg3NCA1Mi42ODg3IDQzLjUzMzRDNTIuMzU4NyA0My4zNzIgNTIuMDgwMSA0My4xNTU3IDUxLjg1MjcgNDIuODg0NEM1MS42MjU0IDQyLjYxMyA1MS40NTMxIDQyLjI5NzcgNTEuMzM1NyA0MS45Mzg0QzUxLjIxODQgNDEuNTcxNyA1MS4xNTk3IDQxLjE4MyA1MS4xNTk3IDQwLjc3MjRDNTEuMTU5NyA0MC4zNjE3IDUxLjIxODQgMzkuOTc2NyA1MS4zMzU3IDM5LjYxNzRDNTEuNDUzMSAzOS4yNTA3IDUxLjYyNTQgMzguOTMxNyA1MS44NTI3IDM4LjY2MDRDNTIuMDgwMSAzOC4zODkgNTIuMzU4NyAzOC4xNzI3IDUyLjY4ODcgMzguMDExNEM1My4wMjYxIDM3Ljg1IDUzLjQxMTEgMzcuNzY5NCA1My44NDM3IDM3Ljc2OTRDNTQuNDUyNCAzNy43Njk0IDU0Ljk2NTcgMzcuOTMwNyA1NS4zODM3IDM4LjI1MzRDNTUuODA5MSAzOC41NzYgNTYuMDYyMSAzOS4wNjM3IDU2LjE0MjcgMzkuNzE2NEg1NS40NDk3Wk01Ny42MzM4IDM5LjY3MjRDNTcuNjU1OCAzOS4zNDI0IDU3LjcyNTUgMzkuMDU2NCA1Ny44NDI4IDM4LjgxNDRDNTcuOTYwMiAzOC41NzI0IDU4LjExNzggMzguMzc0NCA1OC4zMTU4IDM4LjIyMDRDNTguNTIxMiAzOC4wNjY0IDU4Ljc1OTUgMzcuOTUyNyA1OS4wMzA4IDM3Ljg3OTRDNTkuMzAyMiAzNy44MDYgNTkuNjAyOCAzNy43Njk0IDU5LjkzMjggMzcuNzY5NEM2MC4xODIyIDM3Ljc2OTQgNjAuNDMxNSAzNy43OTUgNjAuNjgwOCAzNy44NDY0QzYwLjkzMDIgMzcuODkwNCA2MS4xNTM4IDM3Ljk3ODQgNjEuMzUxOCAzOC4xMTA0QzYxLjU0OTggMzguMjQyNCA2MS43MTEyIDM4LjQyOTQgNjEuODM1OCAzOC42NzE0QzYxLjk2MDUgMzguOTA2IDYyLjAyMjggMzkuMjE0IDYyLjAyMjggMzkuNTk1NFY0Mi42MDk0QzYyLjAyMjggNDIuODg4IDYyLjE1ODUgNDMuMDI3NCA2Mi40Mjk4IDQzLjAyNzRDNjIuNTEwNSA0My4wMjc0IDYyLjU4MzggNDMuMDEyNyA2Mi42NDk4IDQyLjk4MzRWNDMuNTY2NEM2Mi41NjkyIDQzLjU4MSA2Mi40OTU4IDQzLjU5MiA2Mi40Mjk4IDQzLjU5OTRDNjIuMzcxMiA0My42MDY3IDYyLjI5NDIgNDMuNjEwNCA2Mi4xOTg4IDQzLjYxMDRDNjIuMDIyOCA0My42MTA0IDYxLjg3OTggNDMuNTg4NCA2MS43Njk4IDQzLjU0NDRDNjEuNjY3MiA0My40OTMgNjEuNTg2NSA0My40MjM0IDYxLjUyNzggNDMuMzM1NEM2MS40NjkyIDQzLjI0NzQgNjEuNDI4OCA0My4xNDQ3IDYxLjQwNjggNDMuMDI3NEM2MS4zOTIyIDQyLjkwMjcgNjEuMzg0OCA0Mi43NjcgNjEuMzg0OCA0Mi42MjA0SDYxLjM2MjhDNjEuMjM4MiA0Mi44MDM3IDYxLjEwOTggNDIuOTY4NyA2MC45Nzc4IDQzLjExNTRDNjAuODUzMiA0My4yNTQ3IDYwLjcxMDIgNDMuMzcyIDYwLjU0ODggNDMuNDY3NEM2MC4zOTQ4IDQzLjU2MjcgNjAuMjE1MiA0My42MzYgNjAuMDA5OCA0My42ODc0QzU5LjgxMTggNDMuNzM4NyA1OS41NzM1IDQzLjc2NDQgNTkuMjk0OCA0My43NjQ0QzU5LjAzMDggNDMuNzY0NCA1OC43ODE1IDQzLjczMTQgNTguNTQ2OCA0My42NjU0QzU4LjMxOTUgNDMuNjA2NyA1OC4xMTc4IDQzLjUxMTQgNTcuOTQxOCA0My4zNzk0QzU3Ljc3MzIgNDMuMjQgNTcuNjM3NSA0My4wNjc3IDU3LjUzNDggNDIuODYyNEM1Ny40Mzk1IDQyLjY0OTcgNTcuMzkxOCA0Mi40MDA0IDU3LjM5MTggNDIuMTE0NEM1Ny4zOTE4IDQxLjcxODQgNTcuNDc5OCA0MS40MTA0IDU3LjY1NTggNDEuMTkwNEM1Ny44MzE4IDQwLjk2MyA1OC4wNjI4IDQwLjc5MDcgNTguMzQ4OCA0MC42NzM0QzU4LjY0MjIgNDAuNTU2IDU4Ljk2ODUgNDAuNDc1NCA1OS4zMjc4IDQwLjQzMTRDNTkuNjk0NSA0MC4zOCA2MC4wNjQ4IDQwLjMzMjQgNjAuNDM4OCA0MC4yODg0QzYwLjU4NTUgNDAuMjczNyA2MC43MTM4IDQwLjI1NTQgNjAuODIzOCA0MC4yMzM0QzYwLjkzMzggNDAuMjExNCA2MS4wMjU1IDQwLjE3NDcgNjEuMDk4OCA0MC4xMjM0QzYxLjE3MjIgNDAuMDY0NyA2MS4yMjcyIDM5Ljk4NzcgNjEuMjYzOCAzOS44OTI0QzYxLjMwNzggMzkuNzk3IDYxLjMyOTggMzkuNjcyNCA2MS4zMjk4IDM5LjUxODRDNjEuMzI5OCAzOS4yODM3IDYxLjI4OTUgMzkuMDkzIDYxLjIwODggMzguOTQ2NEM2MS4xMzU1IDM4Ljc5MjQgNjEuMDI5MiAzOC42NzE0IDYwLjg4OTggMzguNTgzNEM2MC43NTc4IDM4LjQ5NTQgNjAuNjAwMiAzOC40MzY3IDYwLjQxNjggMzguNDA3NEM2MC4yNDA4IDM4LjM3MDcgNjAuMDUwMiAzOC4zNTI0IDU5Ljg0NDggMzguMzUyNEM1OS40MDQ4IDM4LjM1MjQgNTkuMDQ1NSAzOC40NTg3IDU4Ljc2NjggMzguNjcxNEM1OC40ODgyIDM4Ljg3NjcgNTguMzQxNSAzOS4yMTA0IDU4LjMyNjggMzkuNjcyNEg1Ny42MzM4Wk02MS4zMjk4IDQwLjUwODRINjEuMzA3OEM2MS4yNjM4IDQwLjU4OSA2MS4xNzk1IDQwLjY0NzcgNjEuMDU0OCA0MC42ODQ0QzYwLjkzMDIgNDAuNzIxIDYwLjgyMDIgNDAuNzQ2NyA2MC43MjQ4IDQwLjc2MTRDNjAuNDMxNSA0MC44MTI3IDYwLjEyNzIgNDAuODYwNCA1OS44MTE4IDQwLjkwNDRDNTkuNTAzOCA0MC45NDEgNTkuMjIxNSA0MC45OTk3IDU4Ljk2NDggNDEuMDgwNEM1OC43MDgyIDQxLjE2MSA1OC40OTU1IDQxLjI3ODQgNTguMzI2OCA0MS40MzI0QzU4LjE2NTUgNDEuNTc5IDU4LjA4NDggNDEuNzkxNyA1OC4wODQ4IDQyLjA3MDRDNTguMDg0OCA0Mi4yNDY0IDU4LjExNzggNDIuNDA0IDU4LjE4MzggNDIuNTQzNEM1OC4yNTcyIDQyLjY3NTQgNTguMzUyNSA0Mi43OTI3IDU4LjQ2OTggNDIuODk1NEM1OC41ODcyIDQyLjk5MDcgNTguNzIyOCA0My4wNjQgNTguODc2OCA0My4xMTU0QzU5LjAzMDggNDMuMTY2NyA1OS4xODg1IDQzLjE5MjQgNTkuMzQ5OCA0My4xOTI0QzU5LjYxMzggNDMuMTkyNCA1OS44NjY4IDQzLjE1MiA2MC4xMDg4IDQzLjA3MTRDNjAuMzUwOCA0Mi45OTA3IDYwLjU1OTggNDIuODczNCA2MC43MzU4IDQyLjcxOTRDNjAuOTE5MiA0Mi41NjU0IDYxLjA2MjIgNDIuMzc4NCA2MS4xNjQ4IDQyLjE1ODRDNjEuMjc0OCA0MS45Mzg0IDYxLjMyOTggNDEuNjg5IDYxLjMyOTggNDEuNDEwNFY0MC41MDg0Wk02NS4wNTM5IDM3LjkzNDRINjYuMjA4OVYzOC41MTc0SDY1LjA1MzlWNDIuMzQ1NEM2NS4wNTM5IDQyLjU3MjcgNjUuMDgzMyA0Mi43NTI0IDY1LjE0MTkgNDIuODg0NEM2NS4yMDc5IDQzLjAwOSA2NS4zNjU2IDQzLjA3ODcgNjUuNjE0OSA0My4wOTM0QzY1LjgxMjkgNDMuMDkzNCA2Ni4wMTA5IDQzLjA4MjQgNjYuMjA4OSA0My4wNjA0VjQzLjY0MzRDNjYuMTA2MyA0My42NDM0IDY2LjAwMzYgNDMuNjQ3IDY1LjkwMDkgNDMuNjU0NEM2NS43OTgzIDQzLjY2MTcgNjUuNjk1NiA0My42NjU0IDY1LjU5MjkgNDMuNjY1NEM2NS4xMzA5IDQzLjY2NTQgNjQuODA4MyA0My41Nzc0IDY0LjYyNDkgNDMuNDAxNEM2NC40NDE2IDQzLjIxOCA2NC4zNTM2IDQyLjg4NDQgNjQuMzYwOSA0Mi40MDA0VjM4LjUxNzRINjMuMzcwOVYzNy45MzQ0SDY0LjM2MDlWMzYuMjI5NEg2NS4wNTM5VjM3LjkzNDRaTTY3Ljc2OTggMzUuNzU2NEg2OC40NjI4VjM2Ljg2NzRINjcuNzY5OFYzNS43NTY0Wk02Ny43Njk4IDM3LjkzNDRINjguNDYyOFY0My42MTA0SDY3Ljc2OThWMzcuOTM0NFpNNzIuNzM3MSAzOC4zNTI0QzcyLjQwNzEgMzguMzUyNCA3Mi4xMTc0IDM4LjQyMiA3MS44NjgxIDM4LjU2MTRDNzEuNjE4OCAzOC43MDA3IDcxLjQwOTggMzguODg0IDcxLjI0MTEgMzkuMTExNEM3MS4wNzk4IDM5LjMzODcgNzAuOTU1MSAzOS41OTkgNzAuODY3MSAzOS44OTI0QzcwLjc4NjQgNDAuMTc4NCA3MC43NDYxIDQwLjQ3MTcgNzAuNzQ2MSA0MC43NzI0QzcwLjc0NjEgNDEuMDczIDcwLjc4NjQgNDEuMzcgNzAuODY3MSA0MS42NjM0QzcwLjk1NTEgNDEuOTQ5NCA3MS4wNzk4IDQyLjIwNiA3MS4yNDExIDQyLjQzMzRDNzEuNDA5OCA0Mi42NjA3IDcxLjYxODggNDIuODQ0IDcxLjg2ODEgNDIuOTgzNEM3Mi4xMTc0IDQzLjEyMjcgNzIuNDA3MSA0My4xOTI0IDcyLjczNzEgNDMuMTkyNEM3My4wNjcxIDQzLjE5MjQgNzMuMzU2OCA0My4xMjI3IDczLjYwNjEgNDIuOTgzNEM3My44NTU0IDQyLjg0NCA3NC4wNjA4IDQyLjY2MDcgNzQuMjIyMSA0Mi40MzM0Qzc0LjM5MDggNDIuMjA2IDc0LjUxNTQgNDEuOTQ5NCA3NC41OTYxIDQxLjY2MzRDNzQuNjg0MSA0MS4zNyA3NC43MjgxIDQxLjA3MyA3NC43MjgxIDQwLjc3MjRDNzQuNzI4MSA0MC40NzE3IDc0LjY4NDEgNDAuMTc4NCA3NC41OTYxIDM5Ljg5MjRDNzQuNTE1NCAzOS41OTkgNzQuMzkwOCAzOS4zMzg3IDc0LjIyMjEgMzkuMTExNEM3NC4wNjA4IDM4Ljg4NCA3My44NTU0IDM4LjcwMDcgNzMuNjA2MSAzOC41NjE0QzczLjM1NjggMzguNDIyIDczLjA2NzEgMzguMzUyNCA3Mi43MzcxIDM4LjM1MjRaTTcyLjczNzEgMzcuNzY5NEM3My4xNjk4IDM3Ljc2OTQgNzMuNTUxMSAzNy44NSA3My44ODExIDM4LjAxMTRDNzQuMjE4NCAzOC4xNzI3IDc0LjUwMDggMzguMzg5IDc0LjcyODEgMzguNjYwNEM3NC45NTU0IDM4LjkzMTcgNzUuMTI3OCAzOS4yNTA3IDc1LjI0NTEgMzkuNjE3NEM3NS4zNjI0IDM5Ljk3NjcgNzUuNDIxMSA0MC4zNjE3IDc1LjQyMTEgNDAuNzcyNEM3NS40MjExIDQxLjE4MyA3NS4zNjI0IDQxLjU3MTcgNzUuMjQ1MSA0MS45Mzg0Qzc1LjEyNzggNDIuMjk3NyA3NC45NTU0IDQyLjYxMyA3NC43MjgxIDQyLjg4NDRDNzQuNTAwOCA0My4xNTU3IDc0LjIxODQgNDMuMzcyIDczLjg4MTEgNDMuNTMzNEM3My41NTExIDQzLjY4NzQgNzMuMTY5OCA0My43NjQ0IDcyLjczNzEgNDMuNzY0NEM3Mi4zMDQ0IDQzLjc2NDQgNzEuOTE5NCA0My42ODc0IDcxLjU4MjEgNDMuNTMzNEM3MS4yNTIxIDQzLjM3MiA3MC45NzM0IDQzLjE1NTcgNzAuNzQ2MSA0Mi44ODQ0QzcwLjUxODggNDIuNjEzIDcwLjM0NjQgNDIuMjk3NyA3MC4yMjkxIDQxLjkzODRDNzAuMTExOCA0MS41NzE3IDcwLjA1MzEgNDEuMTgzIDcwLjA1MzEgNDAuNzcyNEM3MC4wNTMxIDQwLjM2MTcgNzAuMTExOCAzOS45NzY3IDcwLjIyOTEgMzkuNjE3NEM3MC4zNDY0IDM5LjI1MDcgNzAuNTE4OCAzOC45MzE3IDcwLjc0NjEgMzguNjYwNEM3MC45NzM0IDM4LjM4OSA3MS4yNTIxIDM4LjE3MjcgNzEuNTgyMSAzOC4wMTE0QzcxLjkxOTQgMzcuODUgNzIuMzA0NCAzNy43Njk0IDcyLjczNzEgMzcuNzY5NFpNNzYuOTkwNCAzNy45MzQ0SDc3LjY4MzRWMzguOTEzNEg3Ny43MDU0Qzc3LjgzNzQgMzguNTY4NyA3OC4wNzIxIDM4LjI5MzcgNzguNDA5NCAzOC4wODg0Qzc4Ljc0NjcgMzcuODc1NyA3OS4xMTcxIDM3Ljc2OTQgNzkuNTIwNCAzNy43Njk0Qzc5LjkxNjQgMzcuNzY5NCA4MC4yNDY0IDM3LjgyMDcgODAuNTEwNCAzNy45MjM0QzgwLjc4MTcgMzguMDI2IDgwLjk5ODEgMzguMTcyNyA4MS4xNTk0IDM4LjM2MzRDODEuMzIwNyAzOC41NDY3IDgxLjQzNDQgMzguNzc0IDgxLjUwMDQgMzkuMDQ1NEM4MS41NjY0IDM5LjMxNjcgODEuNTk5NCAzOS42MjEgODEuNTk5NCAzOS45NTg0VjQzLjYxMDRIODAuOTA2NFY0MC4wNjg0QzgwLjkwNjQgMzkuODI2NCA4MC44ODQ0IDM5LjYwMjcgODAuODQwNCAzOS4zOTc0QzgwLjc5NjQgMzkuMTg0NyA4MC43MTk0IDM5LjAwMTQgODAuNjA5NCAzOC44NDc0QzgwLjQ5OTQgMzguNjkzNCA4MC4zNDkxIDM4LjU3MjQgODAuMTU4NCAzOC40ODQ0Qzc5Ljk3NTEgMzguMzk2NCA3OS43NDQxIDM4LjM1MjQgNzkuNDY1NCAzOC4zNTI0Qzc5LjE4NjcgMzguMzUyNCA3OC45Mzc0IDM4LjQwMzcgNzguNzE3NCAzOC41MDY0Qzc4LjUwNDcgMzguNjAxNyA3OC4zMjE0IDM4LjczNzQgNzguMTY3NCAzOC45MTM0Qzc4LjAyMDcgMzkuMDgyIDc3LjkwMzQgMzkuMjg3NCA3Ny44MTU0IDM5LjUyOTRDNzcuNzM0NyAzOS43NjQgNzcuNjkwNyA0MC4wMjA3IDc3LjY4MzQgNDAuMjk5NFY0My42MTA0SDc2Ljk5MDRWMzcuOTM0NFoiIGZpbGw9ImJsYWNrIi8+DQo8cGF0aCBkPSJNOTUuOTMzNiA1Ljg3Njk2TDk1Ljk2MjkgNS44NzEwOUw5NS45MzM2IDUuODc2OTZaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMjA0MzhfMjcxNzMpIi8+DQo8cGF0aCBkPSJNMTA1LjczNCA1LjM5NjIzQzEwMy40OTYgNC4xMTk2MyAxMDIuMzM2IDQuMzkyODEgOTguODkgNS4yMDE2MkM5OC43NTA3IDUuMjMzNzYgOTguNjA3OSA1LjI2NzY4IDk4LjQ2MTUgNS4zMDE2VjUuMjk4MDNDOTguOTAyNSA0LjE0NjQxIDk5LjAwNiAzLjAyODcyIDk4LjY0NTQgMS45OTQ5NEM5OC42MjIyIDEuOTI3MDkgOTguNjAyNSAxLjg1NzQ2IDk4LjU3NCAxLjc5MTRDOTguMDUyNiAwLjUzMjY1MiA5Ny4xNjcgMC4xNDUyMDkgOTYuNTE1MyAwLjA0MzQzNzdDOTIuNzAzNCAtMC41NTQ2OSA4NS45MTg3IDcuMjQwNjEgODUuMTU4MSA4LjEzMzM0Qzg0Ljk2NTIgOC4zNjAwOSA4NC45Mjk1IDguNjgxNDcgODUuMDY3IDguOTQ1NzJDODUuMjA0NSA5LjIwODE4IDg1LjQ4ODQgOS4zNTk5NCA4NS43ODY1IDkuMzMxMzhDODUuODgzIDkuMzIwNjYgODguMjE4MyA5LjA3MDcgOTUuMDU0OCA3LjU3MDkyQzk1LjE3OCA3LjU0NDEzIDk1LjMzMzQgNy41MTAyMSA5NS41MDY2IDcuNDcwOTNDOTUuMTg1MiA3Ljg4MzM3IDk0LjgyODEgOC4yOTc2IDk0LjQ1NDkgOC43MTAwNEM5NC4zMjI4IDguODU0NjYgOTQuMTkwNyA5LjAwMTA3IDk0LjA1MzIgOS4xNDU2OUM5My42NjQgOS41NTk5MSA5My4yNTg3IDkuOTcwNTcgOTIuODQwOSAxMC4zNzQxQzg5Ljk1MDIgMTAuNDY1MSA4Ny4wNzU2IDEwLjgzNjUgODUuMDM4NCAxMS4wOTlDODQuMDM1IDExLjIyOTMgODMuMTY3MyAxMS44MDQyIDgyLjY2MiAxMi42ODA5QzgyLjE1NjcgMTMuNTU0IDgyLjA4NzEgMTQuNTkxMyA4Mi40NzQ1IDE1LjUyNTFDODIuODYyIDE2LjQ1ODkgODMuNjQyMiAxNy4xNDI3IDg0LjYxODkgMTcuNDAzNEM4NS41OTU1IDE3LjY2MjMgODYuNjE2OCAxNy40NTg4IDg3LjQxODUgMTYuODM5MkM4OC4xMTg0IDE2LjI5ODIgODguOTQ2OCAxNS42NTcyIDg5LjgyNyAxNC45NTAyQzkwLjk4OTQgMTQuMDE0NiA5Mi4yNDYzIDEyLjk1OTQgOTMuNDQ2MSAxMS44MzI4QzkzLjgzIDExLjgyNTcgOTQuMjEyMSAxMS44MjU3IDk0LjU5MjQgMTEuODI5MkM5NS41NTY2IDExLjgzOTkgOTYuNDk5MyAxMS44ODk5IDk3LjM3NTkgMTEuOTk3MUM5Ny4yNTI3IDEyLjA3OTIgOTcuMTI2IDEyLjE2MzEgOTYuOTk1NiAxMi4yNDdDOTEuMTAxOCAxNi4wMjE1IDg5LjI3MzUgMTcuNDk4IDg5LjE5ODYgMTcuNTU4OEM4OC45NjgyIDE3Ljc0NjIgODguODczNiAxOC4wNTY5IDg4Ljk2MjkgMTguMzQwOEM4OS4wNTIxIDE4LjYyNDcgODkuMzAzOSAxOC44MjY0IDg5LjYwMjEgMTguODQ5NkM4OS45OTg0IDE4Ljg4IDkxLjQ1MTggMTguOTgzNSA5My4yODcyIDE4Ljk4MzVDOTYuODUxIDE4Ljk4MzUgMTAxLjg1NCAxOC41OTQzIDEwMy4zNTIgMTYuNTMyMUMxMDMuNzM5IDE1Ljk5ODMgMTA0LjA5MSAxNS4wOTg0IDEwMy41NyAxMy44Mzk2QzEwMy41NTUgMTMuODA3NSAxMDMuNTM4IDEzLjc3ODkgMTAzLjUyMyAxMy43NDY4QzEwMy4wMDUgMTIuNTg5OCAxMDEuOTY1IDExLjc5NTMgMTAwLjYwMiAxMS4yNzIyQzEwMS42MDkgMTAuMjc5NSAxMDIuMTU0IDkuNDE3MDggMTAyLjYgOC43MTE4MkMxMDMuMzM0IDcuNTUxMjggMTAzLjY2OCA3LjAyMSAxMDUuNDggNi43NTg1M0MxMDUuNzg3IDYuNzEzOSAxMDYuMDM0IDYuNDc4MjIgMTA2LjA5MyA2LjE3MjlDMTA2LjE1IDUuODY3NTkgMTA2LjAwOSA1LjU1ODcxIDEwNS43MzcgNS40MDUxNkwxMDUuNzM0IDUuMzk2MjNaTTk0Ljc0NDIgNi4xNDYxMkM5MS4zMzIyIDYuODk2MDEgODkuMDQ1IDcuMzI5ODggODcuNjE2NiA3LjU3NjI3QzkwLjI4NTkgNC43NDA5NyA5NC4wMzM2IDEuNDYyODcgOTYuMDM4NiAxLjQ2Mjg3Qzk2LjEyNjEgMS40NjI4NyA5Ni4yMSAxLjQ2ODIzIDk2LjI5MDQgMS40ODI1MUM5Ni41NTY0IDEuNTI1MzcgOTYuOTQzOCAxLjY2MTA2IDk3LjIyOTUgMi4zNTAyNUM5Ny4yNTYzIDIuNDE2MzEgOTcuMjc0MiAyLjQ4NTk0IDk3LjI5NTYgMi41NTU1N0M5Ny41ODMgMy40Nzg2NSA5Ny4zMTg4IDQuNTU4ODUgOTYuNjkwMyA1LjcwNjlWNS43MTA0N0M5Ni40NiA1Ljc2MjI1IDk2LjIwNjUgNS44MTkzOSA5NS45NTI5IDUuODc2NTJMOTUuOTM1MSA1Ljg4MDA5Qzk1LjQ3OCA1Ljk4MzY1IDk1LjAyOTggNi4wODM2MyA5NC43NDQyIDYuMTQ2MTJaTTg3LjQ0NTIgMTQuOTY4MUM4Ny4xMDc4IDE1LjIzMDUgODYuNzk4OSAxNS40Njk4IDg2LjUyNTcgMTUuNjgwNUM4Ni4wODY1IDE2LjAxOTcgODUuNTI3NyAxNi4xMzQgODQuOTkyIDE1Ljk5MTFDODQuNDU4MiAxNS44NDgzIDg0LjAzMTQgMTUuNDc1MSA4My44MTkgMTQuOTYyN0M4My42MDY1IDE0LjQ1MjEgODMuNjQ0IDEzLjg4NDMgODMuOTIwOCAxMy40MDU4Qzg0LjE5NzUgMTIuOTI3MyA4NC42NzI0IDEyLjYxMTMgODUuMjI0MSAxMi41Mzk4Qzg2LjYyNzUgMTIuMzU5NSA4OC44MDU4IDEyLjA3NzQgOTEuMTQ0NyAxMS45MjU2SDkxLjE0MTFDODkuODA5MiAxMy4wOTg3IDg4LjQ5MTUgMTQuMTUwMyA4Ny40NDM0IDE0Ljk2ODFIODcuNDQ1MlpNMTAyLjIyIDE0LjM5MTRDMTAyLjI1NCAxNC40NzE3IDEwMi4yNzkgMTQuNTQ4NSAxMDIuMyAxNC42MTk5QzEwMi40NjMgMTUuMTY0NSAxMDIuMzA5IDE1LjQ3NTEgMTAyLjE2OCAxNS42NjhDMTAxLjAyIDE3LjI0ODEgOTUuNzkwNCAxNy42MTk1IDkxLjcyNjggMTcuNDk2M0M5Mi45MTIzIDE2LjY2MDcgOTQuODM1MiAxNS4zNDg0IDk3Ljc3NzcgMTMuNDY0N0M5OC4zNzA0IDEzLjA4NDQgOTguODg2NCAxMi43MTg0IDk5LjMzODEgMTIuMzYzMUMxMDAuNzUgMTIuNzU1OSAxMDEuODA2IDEzLjM5NTEgMTAyLjIxOCAxNC4zODk2TDEwMi4yMiAxNC4zOTE0Wk0xMDEuMzY1IDcuOTI2MjJDMTAwLjg1OCA4LjcyOTY4IDEwMC4yNjEgOS42NzQxOCA5OC45NjY4IDEwLjc4ODNDOTguMDEzMyAxMC41ODEyIDk2Ljk3MDYgMTAuNDU5OCA5NS44ODY5IDEwLjM5OTFDOTUuNTY5MSAxMC4zODEyIDk1LjI0OTUgMTAuMzY2OSA5NC45MjQ1IDEwLjM1OThDOTUuMzIyNyA5Ljk0MiA5NS43MDQ3IDkuNTE4ODUgOTYuMDYzNiA5LjA5MjEyQzk2LjE4NjggOC45NDU3MiA5Ni4zMDY0IDguNzk5MzEgOTYuNDI0MyA4LjY1MjlDOTYuODY1MyA4LjEwMTIgOTcuMjY1MiA3LjU0NzcxIDk3LjYwNjIgNi45OTQyMUM5Ny43MjA1IDYuOTY3NDMgOTcuODA0NCA2Ljk0OTU4IDk3Ljg0NTUgNi45Mzg4N0M5OC4zNDU0IDYuODI0NiA5OC44MDA3IDYuNzE3NDcgOTkuMjIwMyA2LjYxOTI3QzEwMS4xNCA2LjE2OTMzIDEwMi4xOTggNS45MTkzNyAxMDMuMSA1Ljk5MDc5QzEwMi4yNzUgNi40NzgyMiAxMDEuODUgNy4xNTEzMyAxMDEuMzYzIDcuOTI0NDRMMTAxLjM2NSA3LjkyNjIyWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzIwNDM4XzI3MTczKSIvPg0KPGcgb3BhY2l0eT0iMC43Ij4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTk2LjQyMjggOC42NDcyNEM5Ni44NjM5IDguMDk1NDUgOTcuMjYzOSA3LjU0MTg2IDk3LjYwNSA2Ljk4ODI4TDk1LjUwNDkgNy40NjE1Qzk1LjE4MzUgNy44NzQwMSA5NC44MjYzIDguMjg4MzEgOTQuNDUzMSA4LjcwMDgyTDk2LjQyNDYgOC42NDU0Nkw5Ni40MjI4IDguNjQ3MjRaIiBmaWxsPSJ1cmwoI3BhaW50Ml9saW5lYXJfMjA0MzhfMjcxNzMpIi8+DQo8cGF0aCBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIGQ9Ik05Ni42ODc1IDUuNzAyTDk4LjQ2MDggNS4yOTQ4NUM5OC45IDQuMTQzMDQgOTkuMDA1NCAzLjAyNTE2IDk4LjY0NDcgMS45OTEyMUw5Ny4yOTI5IDIuNTUwMTVDOTcuNTgwNCAzLjQ3MzM5IDk3LjMxNjEgNC41NTM3NiA5Ni42ODc1IDUuNzAyWiIgZmlsbD0idXJsKCNwYWludDNfbGluZWFyXzIwNDM4XzI3MTczKSIvPg0KPHBhdGggc3R5bGU9Im1peC1ibGVuZC1tb2RlOm11bHRpcGx5IiBkPSJNOTQuOTIzNyAxMC4zNTQ4Qzk1LjMyMTkgOS45MzY5MyA5NS43MDQgOS41MTM3MSA5Ni4wNjMgOS4wODY5MUw5NC4wNTA0IDkuMTM4N0M5My42NjExIDkuNTUzIDkzLjI1NTggOS45NjM3MiA5Mi44Mzc5IDEwLjM2NzNDOTMuNjkzMyAxMC4zNDIzIDk0LjUxODMgMTAuMzM4NyA5NC45MjM3IDEwLjM1NDhaIiBmaWxsPSJ1cmwoI3BhaW50NF9saW5lYXJfMjA0MzhfMjcxNzMpIi8+DQo8cGF0aCBzdHlsZT0ibWl4LWJsZW5kLW1vZGU6bXVsdGlwbHkiIGQ9Ik05OS4zMzc5IDEyLjM1OThDMTAwLjc1IDEyLjc1MjcgMTAxLjgwNiAxMy4zOTIgMTAyLjIxOCAxNC4zODY2QzEwMi4yNTIgMTQuNDY3IDEwMi4yNzcgMTQuNTQzOCAxMDIuMjk5IDE0LjYxNTJMMTAzLjUxOCAxMy43MzQ4QzEwMyAxMi41Nzc3IDEwMS45NTkgMTEuNzgzIDEwMC41OTcgMTEuMjU5OEMxMDAuMDcyIDExLjc3MDUgOTkuOTM2MSAxMS44ODQ4IDk5LjMzNzkgMTIuMzU5OFoiIGZpbGw9InVybCgjcGFpbnQ1X2xpbmVhcl8yMDQzOF8yNzE3MykiLz4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTk1Ljg4NjEgMTAuMzkzNkw5NC41ODc5IDExLjgxODZDOTUuNTUyMiAxMS44MjkzIDk2LjQ5NTEgMTEuODc5MyA5Ny4zNzE5IDExLjk4NjRDOTcuOTgwOCAxMS41MDk2IDk4LjQ5ODcgMTEuMTU5NiA5OC45NjY2IDEwLjc4MjhDOTguMDEzIDEwLjU3NTcgOTYuOTcwMSAxMC40NTQzIDk1Ljg4NjEgMTAuMzkzNloiIGZpbGw9InVybCgjcGFpbnQ2X2xpbmVhcl8yMDQzOF8yNzE3MykiLz4NCjxwYXRoIHN0eWxlPSJtaXgtYmxlbmQtbW9kZTptdWx0aXBseSIgZD0iTTkxLjE0NDYgMTEuOTIxNEg5MS4xNDFDODkuODA5MSAxMy4wOTQ1IDg4LjQ5MTQgMTQuMTQ2MSA4Ny40NDM0IDE0Ljk2MzlMODkuODIzNCAxNC45NDA2QzkwLjk4NTcgMTQuMDA1MSA5Mi4yNDI3IDEyLjk0OTkgOTMuNDQyNSAxMS44MjMyQzkyLjkwNTEgMTEuODQyOSA5MS43MzU2IDExLjg3ODYgOTEuMTQ0NiAxMS45MjMyVjExLjkyMTRaIiBmaWxsPSJ1cmwoI3BhaW50N19saW5lYXJfMjA0MzhfMjcxNzMpIi8+DQo8L2c+DQo8ZGVmcz4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQwX2xpbmVhcl8yMDQzOF8yNzE3MyIgeDE9IjExMi4yNzkiIHkxPSItMi4wMTE1NyIgeDI9IjY2Ljc1NjYiIHkyPSIxOS45ODU5IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBvZmZzZXQ9IjAuMiIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTI1MUNCIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNSIgc3RvcC1jb2xvcj0iIzBBODdCMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMDRBRTlFIi8+DQo8c3RvcCBvZmZzZXQ9IjAuODUiIHN0b3AtY29sb3I9IiMwMUM2OTMiLz4NCjxzdG9wIG9mZnNldD0iMC45NSIgc3RvcC1jb2xvcj0iIzAwQ0Y4RiIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8yMDQzOF8yNzE3MyIgeDE9IjgyLjIyNjQiIHkxPSI5LjQ5Mzg1IiB4Mj0iMTA2LjEwMSIgeTI9IjkuNDkzODUiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIG9mZnNldD0iMC4wNSIgc3RvcC1jb2xvcj0iIzAwQ0Y4RiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjE1IiBzdG9wLWNvbG9yPSIjMDFDNjkzIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMzEiIHN0b3AtY29sb3I9IiMwNEFFOUUiLz4NCjxzdG9wIG9mZnNldD0iMC41IiBzdG9wLWNvbG9yPSIjMEE4N0IxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNzMiIHN0b3AtY29sb3I9IiMxMjUxQ0IiLz4NCjxzdG9wIG9mZnNldD0iMC44IiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDJfbGluZWFyXzIwNDM4XzI3MTczIiB4MT0iOTYuMTE3NCIgeTE9IjguNjk3MjUiIHgyPSI5NS45NjIxIiB5Mj0iNy4yMDYxNCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KPHN0b3Agc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMTMiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDgiLz4NCjxzdG9wIG9mZnNldD0iMC40MSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjE4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNTUiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4zMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNDkiLz4NCjxzdG9wIG9mZnNldD0iMC44NCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjcxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuOTgiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC45NiIvPg0KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDNfbGluZWFyXzIwNDM4XzI3MTczIiB4MT0iOTcuNzQ2NCIgeTE9IjIuNzAwMTUiIHgyPSI5Ny44MDE4IiB5Mj0iNi4xNTU1OCIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KPHN0b3Agc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMTMiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDgiLz4NCjxzdG9wIG9mZnNldD0iMC40MSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjE4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNTUiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4zMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNDkiLz4NCjxzdG9wIG9mZnNldD0iMC44NCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjcxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuOTgiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC45NiIvPg0KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDRfbGluZWFyXzIwNDM4XzI3MTczIiB4MT0iOTQuNTM2MSIgeTE9IjkuMDI2MiIgeDI9Ijk0LjMzMjYiIHkyPSIxMC42OTk0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAiLz4NCjxzdG9wIG9mZnNldD0iMC4xMyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjAyIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMjciIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjQxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMTgiLz4NCjxzdG9wIG9mZnNldD0iMC41NSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjMxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuNjkiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC40OSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjg0IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNzEiLz4NCjxzdG9wIG9mZnNldD0iMC45OCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjk2Ii8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxNTNFRDUiLz4NCjwvbGluZWFyR3JhZGllbnQ+DQo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50NV9saW5lYXJfMjA0MzhfMjcxNzMiIHgxPSIxMDIuNzMiIHkxPSIxMy42NjM5IiB4Mj0iOTkuMzY0NSIgeTI9IjExLjY1MjciIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjEzIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDIiLz4NCjxzdG9wIG9mZnNldD0iMC4yNyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNDEiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4xOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjU1IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMzEiLz4NCjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuODQiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC43MSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjk4IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuOTYiLz4NCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ2X2xpbmVhcl8yMDQzOF8yNzE3MyIgeDE9Ijk1LjY3OTMiIHkxPSIxMC45MTY2IiB4Mj0iOTguNzc0NCIgeTI9IjEyLjAzNjgiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4NCjxzdG9wIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjEzIiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDIiLz4NCjxzdG9wIG9mZnNldD0iMC4yNyIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjA4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNDEiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4xOCIvPg0KPHN0b3Agb2Zmc2V0PSIwLjU1IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMzEiLz4NCjxzdG9wIG9mZnNldD0iMC42OSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjQ5Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuODQiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC43MSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjk4IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuOTYiLz4NCjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzE1M0VENSIvPg0KPC9saW5lYXJHcmFkaWVudD4NCjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQ3X2xpbmVhcl8yMDQzOF8yNzE3MyIgeDE9IjkwLjMzNCIgeTE9IjE0LjE3NDciIHgyPSI5MC43MTk3IiB5Mj0iMTEuNDE3OSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPg0KPHN0b3Agc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwIi8+DQo8c3RvcCBvZmZzZXQ9IjAuMTMiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4wMiIvPg0KPHN0b3Agb2Zmc2V0PSIwLjI3IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuMDgiLz4NCjxzdG9wIG9mZnNldD0iMC40MSIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjE4Ii8+DQo8c3RvcCBvZmZzZXQ9IjAuNTUiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC4zMSIvPg0KPHN0b3Agb2Zmc2V0PSIwLjY5IiBzdG9wLWNvbG9yPSIjMTUzRUQ1IiBzdG9wLW9wYWNpdHk9IjAuNDkiLz4NCjxzdG9wIG9mZnNldD0iMC44NCIgc3RvcC1jb2xvcj0iIzE1M0VENSIgc3RvcC1vcGFjaXR5PSIwLjcxIi8+DQo8c3RvcCBvZmZzZXQ9IjAuOTgiIHN0b3AtY29sb3I9IiMxNTNFRDUiIHN0b3Atb3BhY2l0eT0iMC45NiIvPg0KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjMTUzRUQ1Ii8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=");
    /* ---- brand ---- */
    --accent: #000094;                 /* --color-primary */
    --accent-rgb: 0, 0, 148;
    --accent-hover: #000094;           /* the app defines no darker hover */
    --accent-soft: #f0f3ff;            /* $primary-50 */
    --accent-soft-strong: #e4e9ff;     /* $primary-100 */
    --accent-link: #3949ab;            /* --active-link-color: filter text, today cell */
    --on-accent: #ffffff;
    --nav-active: #18b180;             /* the solid green nav pill */
    --nav-active-soft: #18b180aa;      /* submenu active */
    --white: #ffffff;
    --secondary-bg: #e8eaf6;          /* --color-secondary */
    --secondary-border: #c5cae9;
    --search-border: #a4b2ff;         /* $primary-300 */
    --chip-bg: #fafaff;
    --chip-active-bg: #eeeeee;
    --icon-btn-fg: #84878b;
    --disabled-bg: #a6b4ba;
    --row-tint: rgba(107, 128, 213, .05);
    --nav-rule: rgba(255, 255, 255, .7);
    --badge-grad: linear-gradient(37.14deg, #ff853b 15.41%, #ff2a68 90.76%);

    /* ---- surfaces ---- */
    --bg: #f0f0fa;                     /* --light-lavender: the real page ground */
    --bg-offwhite: #f8f9fd;            /* --offWhite-background */
    --surface: #ffffff;
    --surface-alt: #f5f5f9;            /* header icon buttons */
    --surface-dark: #e7e8ec;
    --surface-medium: #e6eeff;
    --surface-grey: #fafafa;           /* --color-light-grey */
    --sidebar-grad: linear-gradient(180deg, #000094 0%, #00002e 90.28%);

    /* ---- text ---- */
    --text: #2f3541;                   /* on-surface-high-emphasis */
    --text-muted: #757c8c;             /* on-surface-medium-emphasis */
    --text-soft: #6b7994;              /* on-surface-light-emphasis */
    --text-faint: #8f95b2;             /* KPI label / caption */
    --text-head: #2f353b;              /* profile name, headings */
    --text-th: #979ca8;                /* table header */
    --input-hint: #a6aebf;

    /* ---- borders ---- */
    --border: #e1e4ea;                 /* border-medium */
    --border-strong: #c8c9cc;          /* border-dark */
    --hairline: #e8e8ed;               /* border-light */
    --border-table: #e4e7f3;
    --border-ghost: #e8eef1;

    /* ---- status (LMS pairs, not the admin console's WCAG-tuned family) ---- */
    --success-fg: #3eaa86;  --success-bg: #ecfff9;
    --warning-fg: #ff9900;  --warning-bg: #ffeed4;
    --danger-fg:  #f04438;  --danger-bg:  #fef3f2;
    --info-fg:    #4fa7f8;  --info-bg:    rgba(79, 167, 248, .1);
    --neutral-fg: #a6b4ba;  --neutral-bg: #f4f6f7;

    --success-solid: #1ec96f;          /* $success-default */
    --danger-solid:  #d92d20;          /* $danger-default */
    --warning-solid: #eabd08;          /* --color-warning */
    --green-solid:   #30b888;          /* --color-green */

    /* delta chip pair — distinct from the status family */
    --delta-up-fg: #1ad598;  --delta-up-bg: #1ad59833;
    --delta-dn-fg: #ea3a3d;  --delta-dn-bg: #ea3a3d33;

    --code-bg: #00002e;
    --code-text: #ffffff;
    --ribbon-text: #cfd8e3;
    --paper: #ffffff;

    /* ---- shape ---- */
    --radius-card: 8px;
    --radius-chart-card: 16px;
    --radius-control: 6px;
    --radius-field: 8px;
    --radius-sm: 4px;
    --radius-pill: 27px;
    --radius-nav: 6px;

    /* ---- type: ONE family. The app ships Helvetica only. ---- */
    --font-body: Helvetica, Arial, 'Helvetica Neue', sans-serif;
    --font-head: Helvetica, Arial, 'Helvetica Neue', sans-serif;
    --font-mono: ui-monospace, 'SFMono-Regular', 'Cascadia Mono', Menlo, monospace;

    --fs-page-title: 20px;      --fw-page-title: 700;
    --fs-page-subtitle: 13px;
    --fs-card-title: 16px;      --fw-card-title: 700;
    --fs-body: 13px;
    --fs-meta: 12px;
    --fs-table-header: 14px;    --fw-table-header: 500;
    --fs-badge: 14px;
    --fs-nav: 14px;
    --lh-base: 1.5385;          /* .8125rem/1.5385 on .container wraps every screen */

    /* ---- spacing ---- */
    --space-1: 4px;  --space-2: 8px;  --space-3: 12px;
    --space-4: 16px; --space-5: 24px; --space-6: 32px;

    /* ---- shell ----
       The sidebar spans the FULL viewport height and the header starts to its
       inline-end — the opposite of the admin console, and the first thing the
       eye reads as "different product". */
    --header-height: 54px;
    --sidebar-w: 250px;
    --sidebar-w-collapsed: 100px;
    --main-pad-block: 20px;
    --main-pad-inline: 25px;
    --content-max: 1440px;

    /* ---- elevation ---- */
    --shadow-card: 0 2px 4px rgb(29 30 77 / 10%);
    --shadow-ghost: 0 3px 4px -1px rgba(0, 39, 58, .03);
    --shadow-sm: 0 1px 2px 0 rgba(16, 24, 40, .05);
    --shadow-md: 0 2px 4px rgb(29 30 77 / 10%);
    --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);
    --focus-ring-soft: 0 0 0 4px rgb(var(--accent-rgb) / .1);

    /* ---- chart series: the LMS "other colours" scale ---- */
    --s1: #000094;   /* primary */
    --s2: #4f7ff7;   /* blue */
    --s3: #30b888;   /* green */
    --s4: #ff8f27;   /* orange */
    --s5: #dc362e;   /* red */
    --s6: #6f4bff;   /* purple */
  }
}

/* == [B] base ============================================================= */
@layer base {
  *, *::before, *::after { box-sizing: border-box; }

  html { -webkit-text-size-adjust: 100%; }

  body {
    margin: 0;
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-body);
    font-size: var(--fs-body);
    line-height: var(--lh-base);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }

  h1, h2, h3, h4, h5, h6 {
    font-family: var(--font-head);
    margin: 0;
    color: var(--text);
    font-weight: 600;
  }

  p { margin: 0; }
  ul, ol { margin: 0; padding: 0; list-style: none; }
  img, svg { max-inline-size: 100%; }

  a { color: var(--accent); text-decoration: none; }
  a:hover { color: var(--accent-hover); }

  button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer;
  }

  table { border-collapse: collapse; inline-size: 100%; }

  /* Numerals, IDs, money, timestamps: force LTR inside Arabic runs.
     Without this, "-12.4%" renders as "%12.4-" in an RTL context —
     the single most common Arabic-dashboard defect. */
  .nw-num, .nw-money, .nw-time, .nw-id, .nw-tick,
  .nw-kpi-value, .nw-kpi-delta, .nw-cohort-cell, .nw-bar-val, .nw-rank-val {
    direction: ltr;
    unicode-bidi: isolate;
    font-variant-numeric: tabular-nums;
  }

  .nw-id { font-family: var(--font-mono); font-size: var(--fs-meta); }

  .nw-truncate {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-inline-size: 0;
  }

  /* Visually hidden but present for assistive tech and chart captions */
  .nw-vh {
    position: absolute;
    inline-size: 1px; block-size: 1px;
    padding: 0; margin: -1px;
    overflow: hidden; clip-path: inset(50%);
    white-space: nowrap; border: 0;
  }

  :focus-visible {
    outline: 2px solid var(--accent);
    outline-offset: 2px;
    box-shadow: var(--focus-ring-soft);
  }

  ::selection { background: var(--accent-soft); color: var(--text); }

  * { scrollbar-width: thin; scrollbar-color: var(--border-strong) transparent; }
  ::-webkit-scrollbar { inline-size: 8px; block-size: 8px; }
  ::-webkit-scrollbar-thumb { background: var(--border-strong); border-radius: var(--radius-pill); }
  ::-webkit-scrollbar-track { background: transparent; }
}

/* == [S] shell ============================================================ */
/* THE STRUCTURAL DIFFERENCE from the admin console: the sidebar runs the full
   viewport height (inset-block-start: 0) and the header begins at the sidebar's
   inline-end. In the admin console the header spanned the full width and the
   sidebar hung below it. Getting this backwards is the single most obvious tell.

   CRITICAL (unchanged): .nw-header and .nw-sidebar must be DOM DESCENDANTS of
   .nw-app. A position:fixed element resolves inset-inline-* against its own
   inherited direction, so a header outside .nw-app will not mirror in RTL. */
@layer shell {
  .nw-app { min-block-size: 100vh; }

  /* ---- sidebar: navy gradient, full height ---- */
  .nw-sidebar {
    position: fixed;
    inset-block: 0;
    inset-inline-start: 0;
    inline-size: var(--sidebar-w);
    z-index: 0;
    background: var(--sidebar-grad);
    color: var(--white);
    border-inline-end: none;
    padding: var(--space-2) 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
  }

  /* brand: the real white wordmark, embedded as a data URI so it survives
     file:// (an external <use href="logo.svg#id"> is blocked by the opaque
     file:// origin, and inlining 21KB into 12 files would be wasteful). */
  .nw-brand {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-2) var(--space-4) var(--space-4);
    flex: none;
  }
  .nw-brand-logo {
    inline-size: 107px;
    block-size: 40px;
    background-image: var(--logo-full);
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    flex: none;
  }
  /* the white circular collapse control sitting on the sidebar edge */
  .nw-brand-toggle {
    display: grid;
    place-items: center;
    inline-size: 28px;
    block-size: 28px;
    border-radius: var(--radius-nav);
    background: var(--white);
    color: var(--accent);
    border: 1px solid var(--border-ghost);
    flex: none;
  }
  .nw-brand-toggle svg { inline-size: 13px; block-size: 13px; }

  /* gallery header: the dark wordmark, since that header is white */
  .nw-brand--light { padding: 0; justify-content: flex-start; }
  .nw-brand-logo--dark { background-image: var(--logo-dark); }
  .nw-brand-tag { font-size: var(--fs-meta); color: var(--text-muted); margin-inline-start: var(--space-3); }

  .nw-nav-scroll { flex: 1; overflow-y: auto; padding-inline: var(--space-4); min-block-size: 0; }

  /* group headings: white at 70%, separated by a rule, NOT grey micro-caps */
  .nw-nav-heading {
    margin: var(--space-4) 0 0;
    padding: var(--space-4) 0 var(--space-2);
    border-block-start: 1px solid var(--nav-rule);
    font-size: var(--fs-meta);
    font-weight: 400;
    line-height: 16px;
    color: var(--white);
    opacity: .7;
    text-align: start;
  }
  .nw-nav-heading:first-child { margin-block-start: 0; border-block-start: 0; padding-block-start: 0; }

  .nw-nav-item { position: relative; }

  .nw-nav-link {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-block-size: 44px;
    padding: 0 var(--space-2);
    margin: 2px 0;
    border-radius: var(--radius-nav);
    font-size: var(--fs-nav);
    font-weight: 700;
    line-height: 20px;
    color: var(--white);
  }
  /* hover and active are IDENTICAL in the app — a solid green pill, no left bar */
  .nw-nav-link:hover,
  .nw-nav-item.is-active .nw-nav-link {
    background: var(--nav-active);
    color: var(--white);
  }
  .nw-nav-link svg { inline-size: 20px; block-size: 20px; flex: none; color: var(--white); }
  .nw-nav-label { min-inline-size: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* no nav badge exists in the app */
  .nw-nav-tag { display: none; }

  /* ---- header: 54px, white, starts at the sidebar edge ---- */
  .nw-header {
    position: fixed;
    inset-block-start: 0;
    inset-inline-start: var(--sidebar-w);
    inset-inline-end: 0;
    z-index: 997;
    block-size: var(--header-height);
    background: var(--surface);
    border-block-end: 1px solid var(--hairline);
  }
  .nw-header-inner {
    display: flex;
    align-items: center;
    gap: var(--space-3);
    block-size: 100%;
    padding-inline: var(--space-4);
  }

  /* the branch-scope selector — the control the admin console has no equivalent
     for, and the first thing a stakeholder looks for on an LMS header */
  .nw-scope {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    min-inline-size: 240px;
    block-size: 40px;
    padding-inline: var(--space-3);
    border: 1px solid var(--border-ghost);
    border-radius: var(--radius-field);
    background: var(--surface);
    box-shadow: var(--shadow-ghost);
    flex: none;
  }
  .nw-scope-ico { inline-size: 20px; block-size: 20px; color: var(--accent); flex: none; }
  .nw-scope-text { display: flex; flex-direction: column; line-height: 1.25; min-inline-size: 0; }
  .nw-scope-name { font-size: var(--fs-body); font-weight: 500; color: var(--text-head); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .nw-scope-sub { font-size: var(--fs-meta); color: var(--text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .nw-scope-caret { inline-size: 14px; block-size: 14px; color: var(--accent); margin-inline-start: auto; flex: none; }

  .nw-search {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    inline-size: 398px;
    max-inline-size: 398px;
    min-inline-size: 0;
    block-size: 36px;
    padding-inline: 11px;
    background: var(--accent-soft);
    border: 1px solid var(--search-border);
    border-radius: var(--radius-field);
    color: var(--input-hint);
    margin-inline: auto;
  }
  .nw-search-text { flex: 1; font-size: var(--fs-meta); min-inline-size: 0; }
  .nw-search-ico { inline-size: 18px; block-size: 18px; color: var(--accent); flex: none; order: 99; }
  /* no keyboard-shortcut affordance exists in the app */
  .nw-kbd { display: none; }

  .nw-header-actions { display: flex; align-items: center; gap: 0; margin-inline-start: auto; }

  .nw-icon-btn {
    position: relative;
    display: grid;
    place-items: center;
    inline-size: 32px;
    block-size: 32px;
    margin-inline: var(--space-3);
    border-radius: var(--radius-field);
    background: var(--surface-alt);
    color: var(--icon-btn-fg);
  }
  .nw-icon-btn:hover { background: var(--surface-alt); color: var(--icon-btn-fg); }
  .nw-icon-btn svg { inline-size: 17px; block-size: 17px; }

  .nw-icon-badge {
    position: absolute;
    inset-block-start: 0;
    inset-inline-end: 0;
    inline-size: 15px;
    block-size: 15px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--danger-solid);
    color: var(--white);
    font-size: 8px;
    font-weight: 600;
    border: none;
  }
  /* the mail counter uses the app's orange→pink gradient pill */
  .nw-icon-badge--success {
    background: var(--badge-grad);
    min-inline-size: 17px;
    inline-size: auto;
    block-size: 17px;
    padding-inline: 4px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 300;
  }
  /* no vertical rule exists between header controls */
  .nw-header-divider { display: none; }

  .nw-profile {
    display: flex;
    align-items: center;
    gap: var(--space-2);
    padding: 4px var(--space-2);
    border-radius: var(--radius-field);
  }
  .nw-profile:hover { background: none; }
  .nw-profile-text { display: flex; flex-direction: column; line-height: 1.2; }
  .nw-profile-name { font-size: var(--fs-meta); font-weight: 500; color: var(--text-head); text-transform: capitalize; }
  /* the app's profile chip carries no subtitle */
  .nw-profile-role { display: none; }

  /* ---- main ---- */
  .nw-main {
    margin-block-start: var(--header-height);
    margin-inline-start: var(--sidebar-w);
    padding: var(--main-pad-block) var(--main-pad-inline);
    min-block-size: calc(100vh - var(--header-height));
    background: var(--bg);
  }
  .nw-main-inner { max-inline-size: var(--content-max); margin-inline: auto; }

  /* ---- page header ---- */
  .nw-page-header {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: var(--space-4); flex-wrap: wrap;
    margin-block-end: var(--space-4);
  }
  .nw-breadcrumb {
    display: flex; align-items: center; flex-wrap: wrap;
    font-size: var(--fs-meta); color: var(--text-muted);
    margin-block-end: var(--space-1);
  }
  .nw-crumb-sep { margin-inline: 6px; color: var(--text-faint); }
  .nw-page-title { font-size: var(--fs-page-title); font-weight: var(--fw-page-title); color: var(--text-head); }
  .nw-page-subtitle { font-size: var(--fs-page-subtitle); color: var(--text-muted); margin-block-start: 3px; }
  .nw-page-actions { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; }

  /* ---- card: shadowed and borderless, three recipes ---- */
  .nw-card {
    display: flex; flex-direction: column;
    background: var(--surface);
    border: none;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    block-size: 100%;
    min-inline-size: 0;
  }
  .nw-card--chart { border-radius: var(--radius-chart-card); box-shadow: none; }
  .nw-card--flush { border-radius: 0; box-shadow: none; }

  .nw-card-head {
    display: flex; align-items: flex-start; gap: var(--space-3);
    padding: var(--space-4) var(--space-4) var(--space-3);
  }
  .nw-card-titles { min-inline-size: 0; flex: 1; }
  .nw-card-title {
    font-size: var(--fs-card-title);
    font-weight: var(--fw-card-title);
    font-family: var(--font-head);
    color: var(--text-head);
  }
  .nw-card-q { display: block; font-size: var(--fs-meta); color: var(--text-muted); margin-block-start: 3px; }
  .nw-card-body { padding: 0 var(--space-4); flex: 1; min-inline-size: 0; }
  .nw-card-foot {
    display: flex; align-items: center; justify-content: space-between;
    gap: var(--space-3);
    padding: var(--space-3) var(--space-4) var(--space-4);
    margin-block-start: auto;
  }
  .nw-card-note { font-size: var(--fs-meta); color: var(--text-faint); min-inline-size: 0; }
  .nw-card-link {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: var(--fs-meta); font-weight: 500;
    color: var(--accent-link);
    white-space: nowrap;
  }
  .nw-card-link svg { inline-size: 13px; block-size: 13px; }
}

/* == [C] components ======================================================= */
@layer components {

  /* ---- [C-btn] buttons. Exactly ONE .nw-btn--primary per board. ---- */
  .nw-btn {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 6px;
    block-size: 38px;
    padding-inline: 16px;
    border-radius: var(--radius-control);
    font-size: var(--fs-body); font-weight: 500;
    white-space: nowrap;
    border: 1px solid transparent;
  }
  .nw-btn svg { inline-size: 15px; block-size: 15px; }

  .nw-btn--primary { background: var(--accent); border-color: var(--accent); color: var(--on-accent); }
  .nw-btn--primary:hover, .nw-btn--primary.is-hovered {
    background: var(--accent-hover); border-color: var(--accent-hover); color: var(--on-accent);
  }
  .nw-btn--secondary { background: var(--surface); border-color: var(--border); color: var(--text-soft); }
  .nw-btn--secondary:hover { background: var(--surface-alt); border-color: var(--border-strong); color: var(--text); }
  .nw-btn--ghost { background: transparent; color: var(--text-muted); }
  .nw-btn--ghost:hover { background: var(--surface-alt); color: var(--text); }
  .nw-btn--sm { block-size: 30px; padding-inline: 12px; font-size: var(--fs-meta); }
  .nw-btn.is-disabled { opacity: .55; cursor: default; }

  .nw-link {
    color: var(--accent); font-weight: 600; cursor: pointer;
  }

  /* ---- [C-badge] status badge: pill + 5px dot ---- */
  .nw-badge {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 3px 10px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-badge); font-weight: 500;
    white-space: nowrap;
    background: var(--neutral-bg); color: var(--neutral-fg);
  }
  .nw-badge::before {
    content: "";
    inline-size: 5px; block-size: 5px;
    border-radius: 50%;
    background: currentColor;
    flex: none;
  }
  .nw-badge--success { background: var(--success-bg); color: var(--success-fg); }
  .nw-badge--warning { background: var(--warning-bg); color: var(--warning-fg); }
  .nw-badge--danger  { background: var(--danger-bg);  color: var(--danger-fg); }
  .nw-badge--info    { background: var(--info-bg);    color: var(--info-fg); }
  .nw-badge--neutral { background: var(--neutral-bg); color: var(--neutral-fg); }
  .nw-badge--plain::before { display: none; }

  /* ---- [C-prov] PROVENANCE BADGE ----------------------------------------
     The mechanism that keeps this preview honest. Every widget carries one.
     Lives INSIDE the widget bounding box so it survives a screenshot.
       live      ● computed today from data that exists
       partial   ◐ real data, short history or a documented precision gap
       none      ○ deliberately empty, reason stated
       target    ◇ designed ahead of the data
     -------------------------------------------------------------------- */
  .nw-prov {
    display: inline-flex; align-items: center; gap: 5px;
    padding: 2px 8px;
    border-radius: var(--radius-pill);
    font-size: 10.5px; font-weight: 600;
    white-space: nowrap;
    flex: none;
  }
  .nw-prov-mark { font-size: 11px; line-height: 1; }
  .nw-prov--live    { background: var(--success-bg); color: var(--success-fg); }
  .nw-prov--partial { background: var(--warning-bg); color: var(--warning-fg); }
  .nw-prov--none    { background: var(--surface-alt); color: var(--text-faint); }
  .nw-prov--target  { background: var(--info-bg); color: var(--info-fg); }

  .nw-prov-key {
    display: flex; align-items: center; gap: var(--space-4); flex-wrap: wrap;
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    font-size: var(--fs-meta); color: var(--text-muted);
  }
  .nw-prov-key-item { display: flex; align-items: center; gap: 6px; }

  /* ---- [C-kpi] KPI stat card ---- */
  .nw-kpi {
    display: flex; flex-direction: column; gap: var(--space-2);
    padding: var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    block-size: 100%;
    min-inline-size: 0;
  }
  .nw-kpi-top { display: flex; align-items: flex-start; gap: var(--space-2); }
  .nw-kpi-label { font-size: var(--fs-meta); font-weight: 500; color: var(--text-muted); min-inline-size: 0; }
  .nw-kpi-value { font-size: 20px; font-weight: 600; color: var(--text); line-height: 1.2; }
  /* text-valued variant — a badge or a sentence where the numeral would be.
     Used on the Applicant board, whose facts are states, not numbers. */
  .nw-kpi-value--text { font-size: var(--fs-body); font-weight: 600; line-height: 1.35; direction: inherit; }
  .nw-kpi-meta { display: flex; align-items: center; gap: var(--space-2); min-block-size: 20px; flex-wrap: wrap; }
  .nw-kpi-delta {
    display: inline-flex; align-items: center; gap: 3px;
    padding: 1px 8px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-meta); font-weight: 600;
  }
  .nw-kpi-delta svg { inline-size: 11px; block-size: 11px; }
  .nw-kpi-delta.up   { color: var(--success-fg); background: var(--success-bg); }
  .nw-kpi-delta.down { color: var(--danger-fg);  background: var(--danger-bg); }
  .nw-kpi-delta.flat { color: var(--neutral-fg); background: var(--neutral-bg); }
  .nw-kpi-caption { font-size: var(--fs-meta); color: var(--text-faint); }
  .nw-kpi-spark { block-size: 34px; margin-block-start: auto; }

  /* ---- [C-table] data table ---- */
  .nw-table-scroll { overflow-x: auto; }
  .nw-table { inline-size: 100%; font-size: var(--fs-body); }
  .nw-table th {
    padding: 10px var(--space-3);
    text-align: start;
    font-size: var(--fs-table-header);
    font-weight: var(--fw-table-header);
    color: var(--text-muted);
    border-block-end: 1px solid var(--border);
    white-space: nowrap;
  }
  .nw-table td {
    padding: 11px var(--space-3);
    border-block-end: 1px solid var(--hairline);
    color: var(--text);
    vertical-align: middle;
  }
  .nw-table tbody tr:last-child td { border-block-end: 0; }
  .nw-table tbody tr:hover, .nw-table tbody tr.is-hovered { background: var(--surface-alt); }
  .nw-table tbody tr.is-selected { background: var(--accent-soft); }
  .nw-table .nw-num, .nw-table th.nw-num { text-align: end; }
  .nw-cell-main { font-weight: 500; }
  .nw-cell-sub { display: block; font-size: var(--fs-meta); color: var(--text-faint); margin-block-start: 2px; }

  /* ---- [C-empty] the honest-empty panel ---------------------------------
     Appears on 8 of 9 boards. It is a DESIGNED STATE, not a fallback, and
     gets the same visual care as a populated chart. Never render a greyed
     grid with plausible cells — the eye reads texture as data. Blank + prose.
     -------------------------------------------------------------------- */
  .nw-empty {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: var(--space-3);
    padding: var(--space-6) var(--space-4);
    text-align: center;
    min-block-size: 170px;
  }
  .nw-empty-ico {
    display: grid; place-items: center;
    inline-size: 44px; block-size: 44px;
    border-radius: 50%;
    background: var(--surface-alt);
    color: var(--text-faint);
    flex: none;
  }
  .nw-empty-ico svg { inline-size: 20px; block-size: 20px; }
  .nw-empty-title { font-size: var(--fs-body); font-weight: 600; color: var(--text-soft); }
  .nw-empty-text { font-size: var(--fs-meta); color: var(--text-muted); max-inline-size: 46ch; line-height: 1.6; }
  .nw-empty-req {
    font-size: var(--fs-meta); color: var(--text-faint);
    padding: var(--space-2) var(--space-3);
    background: var(--surface-alt);
    border-radius: var(--radius-sm);
    max-inline-size: 50ch;
  }
  .nw-empty--none .nw-empty-ico   { background: var(--surface-alt); color: var(--text-faint); }
  .nw-empty--target .nw-empty-ico { background: var(--info-bg); color: var(--info-fg); }
  .nw-empty--computing .nw-empty-ico { background: var(--warning-bg); color: var(--warning-fg); }
  .nw-empty--ok .nw-empty-ico { background: var(--success-bg); color: var(--success-fg); }

  /* ---- [C-chip] chips / filters / toolbar ---- */
  .nw-toolbar {
    display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap;
    margin-block-end: var(--space-4);
  }
  .nw-chip {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 5px 11px;
    border-radius: var(--radius-pill);
    background: var(--surface);
    border: 1px solid var(--border);
    font-size: var(--fs-meta); color: var(--text-soft);
    white-space: nowrap;
  }
  .nw-chip svg { inline-size: 13px; block-size: 13px; color: var(--text-faint); }
  .nw-chip.is-active { background: var(--accent-soft); border-color: transparent; color: var(--accent); font-weight: 600; }
  .nw-chip.is-active svg { color: var(--accent); }

  .nw-seg {
    display: inline-flex; gap: 2px; padding: 2px;
    background: var(--surface-alt);
    border: 1px solid var(--border);
    border-radius: var(--radius-pill);
  }
  .nw-seg-item {
    display: inline-flex; align-items: center; justify-content: center;
    min-inline-size: 40px; block-size: 26px;
    padding-inline: 10px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-meta); font-weight: 600;
    color: var(--text-muted);
  }
  .nw-seg-item.is-active { background: var(--surface); color: var(--text); box-shadow: var(--shadow-sm); }

  /* ---- [C-avatar] avatar + stack --------------------------------------
     Six DS-3 tint pairs only. Arbitrary saturated colours instantly read as
     a generic template. Descending z-index is REQUIRED or the stack inverts
     visually after the RTL flip. */
  .nw-avatar {
    display: grid; place-items: center;
    inline-size: 28px; block-size: 28px;
    border-radius: 50%;
    font-size: 10.5px; font-weight: 700;
    border: 2px solid var(--surface);
    flex: none;
  }
  .nw-avatar--lg { inline-size: 36px; block-size: 36px; font-size: 12px; }
  .nw-avatar--sm { inline-size: 22px; block-size: 22px; font-size: 9.5px; }
  .nw-avatar--c1 { background: var(--info-bg);     color: var(--info-fg); }
  .nw-avatar--c2 { background: var(--success-bg);  color: var(--success-fg); }
  .nw-avatar--c3 { background: var(--warning-bg);  color: var(--warning-fg); }
  .nw-avatar--c4 { background: var(--danger-bg);   color: var(--danger-fg); }
  .nw-avatar--c5 { background: var(--neutral-bg);  color: var(--neutral-fg); }
  .nw-avatar--c6 { background: var(--accent-soft); color: var(--accent); }
  .nw-avatar--more { background: var(--surface-alt); color: var(--text-muted); }

  .nw-avatars { display: flex; }
  .nw-avatars .nw-avatar + .nw-avatar { margin-inline-start: -8px; }
  .nw-avatars .nw-avatar:nth-child(1) { z-index: 6; }
  .nw-avatars .nw-avatar:nth-child(2) { z-index: 5; }
  .nw-avatars .nw-avatar:nth-child(3) { z-index: 4; }
  .nw-avatars .nw-avatar:nth-child(4) { z-index: 3; }
  .nw-avatars .nw-avatar:nth-child(5) { z-index: 2; }
  .nw-avatars .nw-avatar:nth-child(6) { z-index: 1; }

  /* ---- [C-sync] sync strip ---- */
  .nw-sync-strip {
    display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap;
    padding: var(--space-3) var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    font-size: var(--fs-meta); color: var(--text-muted);
    margin-block-end: var(--space-4);
  }
  .nw-sync-strip .nw-btn { margin-inline-start: auto; }

  /* ---- [C-preview] persistent "static preview" ribbon ---- */
  .nw-ribbon {
    display: flex; align-items: center; justify-content: center; gap: var(--space-2);
    padding: 6px var(--space-4);
    background: var(--code-bg);
    color: var(--ribbon-text);
    font-size: 11px;
    text-align: center;
  }
  .nw-ribbon strong { color: var(--paper); font-weight: 600; }

  /* ---- [C-lang] language toggle + stretched anchors ---- */
  .nw-lang-marker {
    position: fixed;
    inset-block-start: 0; inset-inline-start: 0;
    inline-size: 0; block-size: 0;
    /* position:fixed keeps the element inside the viewport, so the browser
       :target scroll-into-view step is a no-op and the page does not jump. */
  }
  .nw-stretch { position: absolute; inset: 0; border-radius: inherit; z-index: 2; }

  /* ---- [C-list] generic definition rows, meta lists ---- */
  .nw-rows { display: flex; flex-direction: column; }
  .nw-row {
    display: flex; align-items: center; gap: var(--space-3);
    padding-block: 10px;
    border-block-end: 1px solid var(--hairline);
    min-inline-size: 0;
  }
  .nw-row:last-child { border-block-end: 0; }
  .nw-row-main { min-inline-size: 0; flex: 1; }
  .nw-row-title { font-size: var(--fs-body); font-weight: 500; }
  .nw-row-sub { display: block; font-size: var(--fs-meta); color: var(--text-faint); margin-block-start: 2px; }
  .nw-row-end { margin-inline-start: auto; text-align: end; flex: none; }

  .nw-tiles { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--space-3); }
  .nw-tile {
    padding: var(--space-3);
    background: var(--surface-alt);
    border-radius: var(--radius-sm);
  }
  .nw-tile-value { font-size: 17px; font-weight: 600; line-height: 1.2; }
  .nw-tile-label { font-size: var(--fs-meta); color: var(--text-muted); margin-block-start: 2px; }

  /* ---- [C-legend] chart legend — always shows RAW COUNTS, never only % ---- */
  .nw-legend { display: flex; flex-direction: column; gap: 7px; }
  .nw-legend-item { display: flex; align-items: center; gap: var(--space-2); font-size: var(--fs-meta); min-inline-size: 0; }
  .nw-legend-dot { inline-size: 9px; block-size: 9px; border-radius: 3px; background: var(--series, var(--s1)); flex: none; }
  .nw-legend-label { color: var(--text-soft); min-inline-size: 0; }
  .nw-legend-val { margin-inline-start: auto; font-weight: 600; color: var(--text); }

  /* ======================================================================
     LMS RE-SKIN — these rules sit at the end of @layer components and
     re-point the admin-console component vocabulary at the LMS frontend.
     Same layer, later source order, so they win on equal specificity and
     the boards need no markup changes.
     ================================================================== */

  /* ---- buttons: two families, and the app defines NO hover state ---- */
  .nw-btn {
    block-size: auto;
    min-block-size: 36px;
    padding: 6px 24px;
    border-radius: var(--radius-control);
    font-size: 15px;
    font-weight: 500;
    line-height: 20px;
  }
  .nw-btn--primary,
  .nw-btn--primary:hover,
  .nw-btn--primary.is-hovered {
    background: var(--accent);
    border-color: var(--accent);
    color: var(--on-accent);
  }
  .nw-btn--secondary,
  .nw-btn--secondary:hover {
    background: var(--secondary-bg);
    border-color: var(--secondary-border);
    border-radius: var(--radius-sm);
    color: var(--accent);
  }
  .nw-btn--ghost,
  .nw-btn--ghost:hover {
    block-size: 32px;
    min-block-size: 32px;
    padding: 6px var(--space-4);
    background: var(--surface);
    border: 1px solid var(--border-ghost);
    box-shadow: var(--shadow-ghost);
    font-size: var(--fs-nav);
    letter-spacing: -.538462px;
    color: var(--accent);
  }
  .nw-btn--sm { min-block-size: 30px; padding: 4px var(--space-3); font-size: var(--fs-body); }
  .nw-btn.is-disabled { opacity: .7; background: var(--disabled-bg); border-color: var(--border-ghost); color: var(--white); }

  /* ---- badges: no dot, LMS colour pairs, 27px pill ---- */
  .nw-badge {
    padding: 5px 10px;
    border-radius: var(--radius-pill);
    font-size: var(--fs-badge);
    font-weight: 600;
    letter-spacing: 1px;
  /* NOTE: the app sets text-transform: capitalize here, which is right for its
     single-word status labels ("active", "pending") but wrong for the multi-word
     labels these boards carry — it yields "Scope Tier 1 Of 3". Sentence case kept. */
  }
  .nw-badge::before { content: none; }
  .nw-badge--success { color: var(--success-fg); background: var(--success-bg); }
  .nw-badge--warning { color: var(--warning-fg); background: var(--warning-bg); }
  .nw-badge--danger  { color: var(--danger-fg);  background: var(--danger-bg); }
  .nw-badge--info    { color: var(--info-fg);    background: var(--info-bg); }
  .nw-badge--neutral { color: var(--neutral-fg); background: var(--neutral-bg); }

  /* ---- provenance badge: keep the mechanism, adopt the LMS pill shape ---- */
  .nw-prov { border-radius: var(--radius-pill); font-size: 11px; letter-spacing: 0; text-transform: none; }
  .nw-prov--live    { background: var(--success-bg);  color: var(--success-fg); }
  .nw-prov--partial { background: var(--warning-bg);  color: var(--warning-fg); }
  .nw-prov--none    { background: var(--neutral-bg);  color: var(--neutral-fg); }
  .nw-prov--target  { background: var(--info-bg);     color: var(--info-fg); }
  .nw-prov-key { border: none; box-shadow: var(--shadow-card); border-radius: var(--radius-card); }

  /* ---- KPI: the app's stats sit bare on the parent card, with no sparkline ---- */
  .nw-kpi {
    background: var(--surface);
    border: none;
    border-radius: var(--radius-card);
    box-shadow: var(--shadow-card);
    padding: var(--space-4);
  }
  .nw-kpi-label { font-size: var(--fs-meta); font-weight: 400; line-height: 16px; color: var(--text-faint); }
  .nw-kpi-value { font-size: 24px; font-weight: 700; line-height: 36px; color: var(--text-head); }
  .nw-kpi-caption { font-size: var(--fs-meta); color: var(--text-faint); }
  /* no sparkline exists anywhere in the LMS — one line to restore if wanted */
  .nw-kpi-spark { display: none; }

  /* delta chip: no arrow glyph, 5px radius, its own colour pair */
  .nw-kpi-delta {
    padding: 2.19px 7.3px;
    border-radius: 5px;
    font-size: var(--fs-meta);
    font-weight: 400;
  }
  .nw-kpi-delta svg { display: none; }
  .nw-kpi-delta.up   { color: var(--delta-up-fg); background: var(--delta-up-bg); }
  .nw-kpi-delta.down { color: var(--delta-dn-fg); background: var(--delta-dn-bg); }
  .nw-kpi-delta.flat { color: var(--text-faint); background: transparent; }

  /* ---- filter chips: a 34px pale box with link-blue text, not a pill ---- */
  .nw-chip {
    block-size: 34px;
    padding-inline: var(--space-3);
    border-radius: var(--radius-sm);
    background: var(--chip-bg);
    border: 1px solid var(--border-ghost);
    box-shadow: var(--shadow-ghost);
    font-size: var(--fs-nav);
    font-weight: 400;
    line-height: 20px;
    color: var(--accent-link);
  }
  .nw-chip svg { color: var(--accent-link); }
  .nw-chip.is-active {
    background: var(--chip-active-bg);
    border: 1px solid var(--accent-link);
    color: var(--accent-link);
    font-weight: 500;
  }

  /* ---- segmented control: no LMS counterpart; re-skinned as a bordered group ---- */
  .nw-seg { background: var(--surface); border: 1px solid var(--border-ghost); border-radius: var(--radius-control); padding: 2px; box-shadow: var(--shadow-ghost); }
  .nw-seg-item { border-radius: var(--radius-sm); font-size: var(--fs-meta); color: var(--text-muted); }
  .nw-seg-item.is-active { background: var(--accent-soft); color: var(--accent); box-shadow: none; }

  /* ---- table: 60px header row, one border, no row fill ---- */
  .nw-table th {
    padding: 10px;
    font-size: var(--fs-table-header);
    font-weight: var(--fw-table-header);
    line-height: 40px;
    letter-spacing: .02em;
    color: var(--text-th);
    background: none;
    border-block-end: 1px solid var(--border-table);
  }
  .nw-table td { padding: 10px; border-block-end: none; }
  .nw-table tbody tr { background: var(--surface); }
  .nw-table tbody tr:hover { background: none; }
  .nw-table tbody tr.is-hovered { background: var(--row-tint); }
  .nw-table tbody tr.is-selected { background: var(--row-tint); }

  /* ---- avatars: the LMS has no tinted-initials system. Collapse the six
         tints to one neutral chip so existing markup keeps working. ---- */
  .nw-avatar {
    inline-size: 32px; block-size: 32px;
    background: var(--secondary-bg);
    color: var(--accent);
    border: 1px solid var(--white);
    font-size: 11px; font-weight: 600;
  }
  .nw-avatar--sm { inline-size: 24px; block-size: 24px; font-size: 9.5px; }
  .nw-avatar--lg { inline-size: 40px; block-size: 40px; font-size: 13px; }
  .nw-avatar--c1, .nw-avatar--c2, .nw-avatar--c3,
  .nw-avatar--c4, .nw-avatar--c5, .nw-avatar--c6,
  .nw-avatar--more { background: var(--secondary-bg); color: var(--accent); }

  /* ---- sync strip / tiles / rows pick up the card treatment ---- */
  .nw-sync-strip { border: none; box-shadow: var(--shadow-card); border-radius: var(--radius-card); }
  .nw-tile { background: var(--bg-offwhite); border-radius: var(--radius-control); }
  .nw-row { border-block-end: 1px solid var(--border-table); }

  .nw-link { color: var(--accent-link); }
  .nw-empty-ico { background: var(--bg-offwhite); }
  .nw-empty-req { background: var(--bg-offwhite); border-radius: var(--radius-control); }
}

/* == [G] charts =========================================================== */
/* DATA LIVES IN THE HTML, RENDERING LIVES IN THE CSS.
     <div class="nw-bar s1" style="--v: 72%"></div>
   --v  length/percentage   --n  bare number   --i  intensity 0..1
   NO inline style ever contains a colour. Colour comes from a series class
   (.s1...s6) or a state class (.is-good/.is-warn/.is-bad/.is-over).
   All percentages are precomputed by the author; the raw figure is left in an
   HTML comment beside the value so the numbers stay auditable.

   SVG RULES (both load-bearing):
     1. No <text> element EVER inside a chart SVG. Ticks, legends and labels
        are HTML siblings. This is what lets RTL mirror a whole chart with one
        scaleX(-1) while the labels reverse for free.
     2. preserveAspectRatio="none" + vector-effect: non-scaling-stroke.
        Because "none" distorts shapes, POINT MARKERS ARE HTML DOTS, never
        SVG circles (which would render as ellipses).
   ======================================================================== */
@layer charts {
  .s1 { --series: var(--s1); } .s2 { --series: var(--s2); }
  .s3 { --series: var(--s3); } .s4 { --series: var(--s4); }
  .s5 { --series: var(--s5); } .s6 { --series: var(--s6); }
  .is-good { --series: var(--success-solid); }
  .is-warn { --series: var(--warning-solid); }
  .is-bad  { --series: var(--danger-solid); }
  .is-over { --series: var(--danger-solid); }
  .is-accent { --series: var(--accent); }

  /* -- [G-01] sparkline (34px) -- */
  .nw-spark { display: block; inline-size: 100%; block-size: 34px; overflow: visible; }
  .nw-spark-line {
    fill: none;
    stroke: var(--series, var(--accent));
    stroke-width: 1.5;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
  }
  .nw-spark-area { fill: color-mix(in srgb, var(--series, var(--accent)) 12%, transparent); stroke: none; }
  /* flat trend uses a DASHED stroke, not a colour swap — never encode by colour alone */
  .nw-spark--flat .nw-spark-line { stroke: var(--text-faint); stroke-dasharray: 3 3; }

  /* The LMS has no sparkline anywhere. This rule must live in the charts layer,
     not components: .nw-spark{display:block} below would otherwise win on layer
     order and the KPI sparklines would reappear. One line to restore them. */
  .nw-kpi-spark { display: none; }

  /* -- [G-02] line / area trend chart with axes and a reference line -- */
  .nw-chart {
    display: grid;
    grid-template-columns: 46px 1fr;
    grid-template-rows: 1fr auto;
    column-gap: var(--space-2);
    min-inline-size: 0;
  }
  .nw-chart-yaxis {
    display: flex; flex-direction: column; justify-content: space-between;
    align-items: flex-end;
    padding-block-end: 2px;
  }
  .nw-chart-plot { position: relative; block-size: 180px; min-inline-size: 0; }
  .nw-chart-xaxis {
    grid-column: 2;
    display: flex; justify-content: space-between;
    padding-block-start: 7px;
  }
  .nw-tick { font-size: 10.5px; color: var(--text-faint); white-space: nowrap; }
  /* gridlines in CSS, not SVG — guarantees a crisp 1-device-pixel line at any
     container size, which a preserveAspectRatio="none" SVG cannot */
  .nw-gridlines {
    position: absolute; inset: 0;
    background: repeating-linear-gradient(to bottom,
      var(--hairline) 0 1px, transparent 1px 25%);
  }
  .nw-chart-svg { position: absolute; inset: 0; inline-size: 100%; block-size: 100%; }
  .nw-line {
    fill: none; stroke: var(--series, var(--accent));
    stroke-width: 2; stroke-linejoin: round; stroke-linecap: round;
    vector-effect: non-scaling-stroke;
  }
  .nw-line--dash { stroke-dasharray: 4 3; stroke-width: 1.5; }
  .nw-area { fill: color-mix(in srgb, var(--series, var(--accent)) 14%, transparent); stroke: none; }
  .nw-refline {
    position: absolute; inset-inline: 0;
    inset-block-start: calc(100% - var(--ref));
    border-block-start: 1px dashed var(--border-strong);
  }
  .nw-refline-label {
    position: absolute; inset-inline-end: 0; inset-block-start: -16px;
    font-size: 10px; color: var(--text-faint);
    background: var(--surface); padding-inline: 4px;
  }
  /* HTML point marker — never an SVG circle */
  .nw-pt {
    position: absolute;
    inset-inline-start: var(--x); inset-block-start: var(--y);
    translate: -50% -50%;
    inline-size: 7px; block-size: 7px;
    border-radius: 50%;
    background: var(--series, var(--accent));
    box-shadow: 0 0 0 2px var(--surface);
  }

  /* -- [G-03] vertical bars: plain, grouped, stacked, ghost, histogram -- */
  .nw-bars {
    display: flex; align-items: stretch; justify-content: space-between;
    gap: var(--space-2);
    block-size: 170px;
    min-inline-size: 0;
  }
  .nw-bar-group { display: flex; flex-direction: column; align-items: center; gap: 7px; flex: 1; min-inline-size: 0; block-size: 100%; }
  .nw-bar-slot { position: relative; display: flex; align-items: flex-end; justify-content: center; gap: 3px; flex: 1 1 0; min-block-size: 0; inline-size: 100%; }
  .nw-bar {
    inline-size: 16px; max-inline-size: 100%;
    block-size: var(--v);
    background: var(--series, var(--accent));
    border-radius: 4px 4px 0 0;   /* vertical-only radius — direction-agnostic */
    min-block-size: 2px;
  }
  .nw-bar--wide { inline-size: 30px; }
  /* ghost = previous-period comparison bar sitting behind the current one */
  .nw-bar--ghost {
    position: absolute; inset-block-end: 0;
    background: var(--border-strong);
    opacity: .45;
    inline-size: 22px;
    z-index: 0;
  }
  .nw-bar-slot > .nw-bar:not(.nw-bar--ghost) { position: relative; z-index: 1; }
  .nw-bar-label { font-size: 10.5px; color: var(--text-faint); text-align: center; }
  .nw-bar-val { font-size: 10px; color: var(--text-muted); }
  .nw-bar-stack { display: flex; flex-direction: column; justify-content: flex-end; inline-size: 16px; block-size: 100%; }
  .nw-bar-seg { block-size: var(--v); background: var(--series, var(--accent)); min-block-size: 2px; }
  .nw-bar-stack .nw-bar-seg:first-child { border-radius: 4px 4px 0 0; }
  .nw-bar-stack .nw-bar-seg:last-child  { border-radius: 0 0 4px 4px; }

  /* -- [G-04] horizontal bar / ranked leaderboard -- */
  .nw-rank { display: flex; flex-direction: column; }
  .nw-rank-row {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr) 120px 52px;
    align-items: center;
    gap: var(--space-3);
    padding-block: 7px;
    min-inline-size: 0;
  }
  .nw-rank-row--nonum { grid-template-columns: minmax(0, 1fr) 120px 52px; }
  .nw-rank-n { font-size: var(--fs-meta); color: var(--text-faint); }
  .nw-rank-name { font-size: var(--fs-body); min-inline-size: 0; }
  .nw-rank-val { font-size: var(--fs-body); font-weight: 600; text-align: end; }
  .nw-track {
    position: relative;
    block-size: 6px;
    border-radius: var(--radius-pill);
    background: var(--surface-alt);
    overflow: hidden;
  }
  .nw-track-fill {
    display: block; block-size: 100%;
    inline-size: var(--v);
    background: var(--series, var(--accent));
    border-radius: inherit;
  }
  .nw-track--stack { display: flex; }
  .nw-track--stack .nw-track-fill { border-radius: 0; }
  /* average / threshold tick drawn OVER the track */
  .nw-track-tick {
    position: absolute; inset-block: -3px;
    inset-inline-start: var(--ref);
    inline-size: 2px; border-radius: 1px;
    background: var(--text-faint);
  }

  /* -- [G-05] donut ------------------------------------------------------
     GOTCHA: the --a/--b/--c stops are CUMULATIVE, not segment sizes.
     Segments 46/28/17/9 become --a:46% --b:74% --c:91%.
     The hole is a real child div, not a mask: the centre needs an opaque
     surface behind the value text anyway. */
  .nw-donut { position: relative; inline-size: 100%; max-inline-size: 132px; aspect-ratio: 1; }
  .nw-donut-ring {
    inline-size: 100%; block-size: 100%; border-radius: 50%;
    background: conic-gradient(
      var(--s1) 0 var(--a),
      var(--s2) var(--a) var(--b),
      var(--s3) var(--b) var(--c),
      var(--s4) var(--c) 100%);
  }
  .nw-donut--3 .nw-donut-ring {
    background: conic-gradient(
      var(--s1) 0 var(--a),
      var(--s2) var(--a) var(--b),
      var(--s3) var(--b) 100%);
  }
  .nw-donut--bands .nw-donut-ring {
    background: conic-gradient(
      var(--success-solid) 0 var(--a),
      var(--warning-solid) var(--a) var(--b),
      var(--danger-solid) var(--b) 100%);
  }
  .nw-donut-hole {
    position: absolute; inset: 21%;
    border-radius: 50%;
    background: var(--surface);
  }
  .nw-donut-center {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 1px; text-align: center;
  }
  .nw-donut-value { font-size: 18px; font-weight: 600; line-height: 1.1; }
  .nw-donut-label { font-size: 10px; color: var(--text-muted); }

  /* -- [G-06a] short funnel (<=6 stages), centred taper. RTL-free. -- */
  .nw-funnel { display: flex; flex-direction: column; gap: 5px; }
  .nw-funnel-stage { display: flex; flex-direction: column; gap: 3px; }
  .nw-funnel-bar {
    display: block;
    inline-size: var(--v);
    margin-inline: auto;           /* symmetric — mirrors for free */
    block-size: 30px;
    border-radius: var(--radius-sm);
    background: var(--series, var(--accent));
  }
  .nw-funnel-meta {
    display: flex; align-items: baseline; justify-content: center; gap: 7px;
    font-size: var(--fs-meta); color: var(--text-muted);
  }
  .nw-funnel-meta b { font-size: var(--fs-body); color: var(--text); }
  .nw-funnel-drop { font-size: 10px; color: var(--danger-fg); }

  /* -- [G-06b] drop-off waterfall — the 17-state admissions flow ----------
     A 17-stage taper is unreadable below ~1400px; the bottom stages collapse
     to slivers. Vertical waterfall instead: legible at every width, and RTL
     is entirely free because the layout is vertical. */
  .nw-waterfall { display: flex; flex-direction: column; }
  .nw-wf-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 110px 44px 62px;
    align-items: center; gap: var(--space-3);
    padding-block: 6px;
    min-inline-size: 0;
  }
  .nw-wf-label { font-size: var(--fs-body); min-inline-size: 0; }
  .nw-wf-count { font-size: var(--fs-body); font-weight: 600; text-align: end; }
  .nw-wf-delta { font-size: 10.5px; color: var(--text-faint); text-align: end; }
  .nw-wf-subhead {
    margin-block: var(--space-3) var(--space-1);
    padding-block-start: var(--space-3);
    border-block-start: 1px solid var(--border);
    font-size: var(--fs-meta); font-weight: 600; color: var(--text-muted);
  }

  /* -- [G-07] progress / capacity meter with a threshold marker -----------
     GOTCHA: the marker is a SIBLING of the track, outside overflow:hidden.
     Inside it, the inset-block overshoot is clipped and it stops reading as
     a threshold. */
  .nw-meter { position: relative; }
  .nw-meter-track {
    block-size: 6px;
    border-radius: var(--radius-pill);
    background: var(--surface-alt);
    overflow: hidden;
  }
  .nw-meter-fill {
    display: block; block-size: 100%;
    inline-size: var(--v);
    border-radius: inherit;
    background: var(--series, var(--accent));
  }
  .nw-meter-mark {
    position: absolute; inset-block: -3px;
    inset-inline-start: var(--ref);
    inline-size: 2px; border-radius: 1px;
    background: var(--text-faint);
  }
  .nw-meter-row { display: flex; flex-direction: column; gap: 6px; padding-block: 8px; }
  .nw-meter-head { display: flex; align-items: baseline; gap: var(--space-2); font-size: var(--fs-body); }
  .nw-meter-head .nw-num { margin-inline-start: auto; font-weight: 600; }

  /* -- [G-08] gauge — half ring, band coloured. --v is a BARE NUMBER 0..100.
     from 270deg starts the sweep at 9 oclock, so 0..50% of the conic is
     exactly the visible top half sweeping start-to-end. */
  .nw-gauge { position: relative; inline-size: 100%; max-inline-size: 150px; aspect-ratio: 2 / 1; overflow: hidden; }
  .nw-gauge-ring {
    inline-size: 100%; aspect-ratio: 1; border-radius: 50%;
    background: conic-gradient(from 270deg,
      var(--series, var(--accent)) 0 calc(var(--n) * 0.5%),
      var(--surface-alt) calc(var(--n) * 0.5%) 50%,
      transparent 50%);
  }
  .nw-gauge-hole {
    position: absolute;
    inset-inline: 16%; inset-block-start: 16%;
    aspect-ratio: 1; border-radius: 50%;
    background: var(--surface);
  }
  .nw-gauge-center {
    position: absolute; inset-inline: 0; inset-block-end: 0;
    display: flex; flex-direction: column; align-items: center; gap: 1px;
  }
  .nw-gauge-value { font-size: 20px; font-weight: 600; line-height: 1; }
  .nw-gauge-label { font-size: 10px; color: var(--text-muted); }
  .nw-gauge--sm { max-inline-size: 74px; }
  .nw-gauge--sm .nw-gauge-value { font-size: 13px; }

  /* -- [G-09] heatmap grid. Five DISCRETE buckets, not a continuous ramp:
     the legend shows discrete swatches anyway, and hand-authoring computed
     alphas is worse than typing i3. Zero cells are OUTLINED, never filled. */
  .nw-heat { display: grid; gap: 3px; min-inline-size: 0; }
  .nw-heat-cell { aspect-ratio: 1; border-radius: 3px; background: var(--surface-alt); }
  .nw-heat-cell.i0 { background: transparent; box-shadow: inset 0 0 0 1px var(--border); }
  .nw-heat-cell.i1 { background: color-mix(in srgb, var(--accent) 14%, var(--surface)); }
  .nw-heat-cell.i2 { background: color-mix(in srgb, var(--accent) 30%, var(--surface)); }
  .nw-heat-cell.i3 { background: color-mix(in srgb, var(--accent) 48%, var(--surface)); }
  .nw-heat-cell.i4 { background: color-mix(in srgb, var(--accent) 70%, var(--surface)); }
  .nw-heat-cell.i5 { background: color-mix(in srgb, var(--accent) 90%, var(--surface)); }
  .nw-heat-lab { font-size: 10px; color: var(--text-faint); display: flex; align-items: center; }
  .nw-heat-legend { display: flex; align-items: center; gap: 5px; font-size: 10px; color: var(--text-faint); }
  .nw-heat-sw { inline-size: 12px; block-size: 12px; border-radius: 3px; }

  /* -- [G-10] cohort retention grid (triangular).
     Row n emits fewer cells; implicit grid flow leaves the tail empty, and
     the triangle points the correct way in RTL for free. */
  .nw-cohort { display: grid; gap: 3px; min-inline-size: 0; }
  .nw-cohort-cell {
    aspect-ratio: 2 / 1;
    display: grid; place-items: center;
    border-radius: var(--radius-sm);
    font-size: 10.5px;
    background: var(--surface-alt);
    color: var(--text-soft);
  }
  .nw-cohort-cell.i4, .nw-cohort-cell.i5 { color: var(--on-accent); }

  /* -- [G-11] status-flow rail / stepper. Vertical is the default: it is the
     cheapest possible RTL story. */
  .nw-steps { display: flex; flex-direction: column; }
  .nw-step { position: relative; padding-inline-start: 30px; padding-block-end: var(--space-4); }
  .nw-step:last-child { padding-block-end: 0; }
  .nw-step-mark {
    position: absolute;
    inset-inline-start: 0; inset-block-start: 1px;
    inline-size: 18px; block-size: 18px;
    border-radius: 50%;
    display: grid; place-items: center;
    background: var(--surface-alt);
    border: 1px solid var(--border-strong);
    color: var(--on-accent);
  }
  .nw-step-mark svg { inline-size: 11px; block-size: 11px; }
  .nw-step::after {
    content: "";
    position: absolute;
    inset-inline-start: 8px;
    inset-block: 22px 0;
    inline-size: 2px;
    background: var(--border);
  }
  .nw-step:last-child::after { display: none; }
  .nw-step.is-done .nw-step-mark { background: var(--accent); border-color: var(--accent); }
  .nw-step.is-done::after { background: var(--accent); }
  .nw-step.is-current .nw-step-mark {
    background: var(--surface); border: 2px solid var(--accent);
    box-shadow: 0 0 0 3px var(--accent-soft);
  }
  .nw-step.is-exit .nw-step-mark { background: var(--danger-solid); border-color: var(--danger-solid); }
  .nw-step-title { font-size: var(--fs-body); font-weight: 500; }
  .nw-step.is-todo .nw-step-title { color: var(--text-muted); font-weight: 400; }
  .nw-step-time { font-size: var(--fs-meta); color: var(--text-faint); margin-block-start: 2px; }

  /* horizontal rail variant — page-header scale, for the Applicant board */
  .nw-rail { display: flex; align-items: flex-start; gap: 0; min-inline-size: 0; overflow-x: auto; padding-block-end: var(--space-2); }
  .nw-rail-node { position: relative; display: flex; flex-direction: column; align-items: center; gap: 6px; flex: 1; min-inline-size: 64px; text-align: center; }
  .nw-rail-dot {
    inline-size: 16px; block-size: 16px; border-radius: 50%;
    background: var(--surface-alt); border: 1px solid var(--border-strong);
    display: grid; place-items: center; color: var(--on-accent);
    position: relative; z-index: 1;
  }
  .nw-rail-dot svg { inline-size: 9px; block-size: 9px; }
  .nw-rail-node::before {
    content: ""; position: absolute;
    inset-block-start: 7px;
    inset-inline-start: -50%;
    inline-size: 100%; block-size: 2px;
    background: var(--border);
    z-index: 0;
  }
  .nw-rail-node:first-child::before { display: none; }
  .nw-rail-node.is-done .nw-rail-dot { background: var(--accent); border-color: var(--accent); }
  .nw-rail-node.is-done::before { background: var(--accent); }
  .nw-rail-node.is-current .nw-rail-dot { background: var(--surface); border: 2px solid var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
  .nw-rail-node.is-current::before { background: var(--accent); }
  .nw-rail-label { font-size: 10px; color: var(--text-muted); line-height: 1.3; }
  .nw-rail-node.is-current .nw-rail-label { color: var(--accent); font-weight: 600; }

  /* -- [G-12] mini month calendar -- */
  .nw-cal { display: grid; grid-template-columns: repeat(7, 1fr); gap: 3px; }
  .nw-cal-head { font-size: 10px; color: var(--text-faint); text-align: center; padding-block-end: 3px; }
  .nw-cal-day {
    position: relative;
    aspect-ratio: 1;
    display: grid; place-items: center;
    border-radius: 50%;
    font-size: var(--fs-meta);
    color: var(--text-soft);
  }
  .nw-cal-day.is-muted { color: var(--text-faint); opacity: .5; }
  .nw-cal-day.is-today { background: var(--accent); color: var(--on-accent); font-weight: 700; }
  .nw-cal-day.is-holiday { background: var(--danger-bg); color: var(--danger-fg); font-weight: 600; }
  .nw-cal-day.has-event::after {
    content: ""; position: absolute;
    inset-block-end: 3px; inset-inline-start: 50%;
    translate: -50% 0;
    inline-size: 4px; block-size: 4px; border-radius: 50%;
    background: var(--accent);
  }
  .nw-cal-day.is-today.has-event::after { background: var(--on-accent); }

  /* -- [G-13] rating stars -- */
  .nw-stars { position: relative; display: inline-flex; line-height: 0; }
  .nw-stars-bg, .nw-stars-fg { display: inline-flex; gap: 1px; }
  .nw-stars-bg { color: var(--border-strong); }
  .nw-stars-fg {
    position: absolute; inset-block: 0; inset-inline-start: 0;
    inline-size: var(--v);
    overflow: hidden; white-space: nowrap;
    color: var(--warning-solid);
  }
  .nw-stars svg { inline-size: 13px; block-size: 13px; flex: none; }

  /* -- [G-14] 100% stacked distribution bar -- */
  .nw-stackbar { display: flex; block-size: 10px; border-radius: var(--radius-pill); overflow: hidden; background: var(--surface-alt); }
  .nw-stackbar-seg { inline-size: var(--v); background: var(--series, var(--accent)); }

  /* -- [G-15] directional icon wrapper.
     ONLY for horizontal glyphs: chevrons, arrows, breadcrumb separators.
     NEVER on vertical carets or KPI up/down arrows. */
  .nw-dir-ico { display: inline-flex; }

  /* -- [G-16] sparse-series callout — an n=2 series must never be drawn as a
     smooth area chart. Stepped line + visible markers + an explicit count. */
  .nw-sparse-note {
    font-size: 10.5px; color: var(--text-faint);
    padding: 3px 8px; background: var(--surface-alt);
    border-radius: var(--radius-sm); display: inline-block;
  }
}

/* == [I] i18n ============================================================= */
/* THE AR/EN MECHANISM — zero JavaScript.
   State is carried by the URL fragment, NOT a checkbox: a checkbox loses its
   state the moment you navigate from the gallery into a board, and across 11
   interlinked files that is not a mechanism, it is a demo.
     04-staff-registrar.html#ar  is a complete, shareable, bookmarkable and
     PRINTABLE Arabic board. Printing that URL yields the Arabic PDF.

   display: revert-layer is load-bearing — it rolls the hidden state back to
   whatever the components/charts layers computed, so a .t-ar <span> returns
   to inline and a .t-ar <div> returns to block. That is why this layer MUST
   sit after components and charts in the @layer order.

   <html dir> stays "ltr" in every file, so :dir() is unusable. All state
   selectors go through #ar:target ~ .nw-app.
   ======================================================================== */
@layer i18n {
  .t-ar { display: none; }

  #ar\:target { }  /* no-op: keeps linters from flagging the marker ids */

  #ar:target ~ .nw-app {
    direction: rtl;
    --font-body: 'Cairo', 'Segoe UI', 'Noto Naskh Arabic', Tahoma, sans-serif;
    --font-head: 'Tajawal', 'Cairo', Tahoma, sans-serif;
    --lh-base: 1.7;
    /* Arabic renders optically smaller at the same px — nudge up so nothing
       falls below the 11px floor */
    --fs-body: 13px;
    --fs-meta: 12px;
    --fs-table-header: 11.5px;
    --fs-badge: 12px;
    --fs-page-subtitle: 13px;
    --fs-card-title: 14px;
  }

  #ar:target ~ .nw-app { font-family: var(--font-body); line-height: var(--lh-base); }
  #ar:target ~ .nw-app .t-en { display: none; }
  #ar:target ~ .nw-app .t-ar { display: revert-layer; }

  /* Arabic must NEVER be letter-spaced — it breaks glyph joining.
     Tajawal 500 reads too light beside Plus Jakarta 500, so headings go 700. */
  #ar:target ~ .nw-app h1, #ar:target ~ .nw-app h2, #ar:target ~ .nw-app h3,
  #ar:target ~ .nw-app h4, #ar:target ~ .nw-app h5, #ar:target ~ .nw-app h6,
  #ar:target ~ .nw-app .nw-page-title, #ar:target ~ .nw-app .nw-card-title,
  #ar:target ~ .nw-app .nw-brand-name {
    font-family: var(--font-head);
    font-weight: 700;
    letter-spacing: normal;
  }
  #ar:target ~ .nw-app .nw-brand-suffix { letter-spacing: normal; }

  /* --- the corrections logical properties cannot reach --- */

  /* 1. SVG has its own coordinate space and ignores `direction`.
        Safe ONLY because no <text> ever lives inside a chart SVG. */
  #ar:target ~ .nw-app .nw-chart-svg,
  #ar:target ~ .nw-app .nw-spark { transform: scaleX(-1); }

  /* 2. conic-gradient always sweeps clockwise. Mirror the RING ONLY —
        never the centred value overlay, which must stay readable. */
  #ar:target ~ .nw-app .nw-donut-ring,
  #ar:target ~ .nw-app .nw-gauge-ring { transform: scaleX(-1); }

  /* 3. Horizontal glyphs only. Vertical carets and KPI up/down arrows must
        NOT carry .nw-dir-ico and are deliberately untouched here. */
  #ar:target ~ .nw-app .nw-dir-ico { transform: scaleX(-1); }

  /* 4. The language toggle reflects the active state. */
  #ar:target ~ .nw-app .nw-lang-en { background: none; color: var(--text-muted); box-shadow: none; }
  #ar:target ~ .nw-app .nw-lang-ar { background: var(--surface); color: var(--text); box-shadow: var(--shadow-sm); }

  /* NOTE: .nw-rail-node::before needs NO RTL override. Its offset is already
     the logical inset-inline-start: -50%, which mirrors on its own. An
     explicit flip here double-mirrors it and points every connector forward. */
}

/* == [U] utilities ======================================================== */
@layer utilities {
  /* Board grid. auto-fit + minmax means most reflow needs ZERO breakpoints. */
  .nw-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: var(--space-5);
    margin-block-end: var(--space-5);
  }
  .nw-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: var(--space-4);
    margin-block-end: var(--space-5);
  }
  .c3  { grid-column: span 3; }
  .c4  { grid-column: span 4; }
  .c5  { grid-column: span 5; }
  .c6  { grid-column: span 6; }
  .c7  { grid-column: span 7; }
  .c8  { grid-column: span 8; }
  .c9  { grid-column: span 9; }
  .c12 { grid-column: span 12; }

  .nw-stack   { display: flex; flex-direction: column; gap: var(--space-3); }
  .nw-stack-2 { display: flex; flex-direction: column; gap: var(--space-2); }
  .nw-row-f   { display: flex; align-items: center; gap: var(--space-3); flex-wrap: wrap; }
  .nw-between { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
  .nw-push    { margin-inline-start: auto; }
  .nw-mt-3    { margin-block-start: var(--space-3); }
  .nw-mb-3    { margin-block-end: var(--space-3); }
  .nw-muted   { color: var(--text-muted); }
  .nw-faint   { color: var(--text-faint); }
  .nw-meta    { font-size: var(--fs-meta); }
  .nw-strong  { font-weight: 600; }
  .nw-danger  { color: var(--danger-fg); }
  .nw-success { color: var(--success-fg); }
  .nw-warning { color: var(--warning-fg); }

  /* ---- gallery (index.html) ---- */
  .nw-gallery {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(310px, 1fr));
    gap: var(--space-5);
  }
  .nw-gcard {
    position: relative;
    display: flex; flex-direction: column;
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: var(--radius-card);
    overflow: hidden;
  }
  .nw-gcard:hover, .nw-gcard.is-hovered {
    border-color: var(--border-strong);
    box-shadow: var(--shadow-md);
  }
  .nw-thumb {
    position: relative;
    aspect-ratio: 16 / 10;
    background: var(--bg);
    border-block-end: 1px solid var(--border);
    overflow: hidden;
    padding: 7px;
    display: flex; flex-direction: column; gap: 5px;
  }
  .nw-thumb-bar { block-size: 11px; background: var(--surface); border-radius: 3px; border: 1px solid var(--border); flex: none; }
  .nw-thumb-body { display: flex; gap: 5px; flex: 1; min-block-size: 0; }
  .nw-thumb-side { inline-size: 20%; background: var(--surface); border: 1px solid var(--border); border-radius: 3px; flex: none; }
  .nw-thumb-main { flex: 1; display: flex; flex-direction: column; gap: 5px; min-inline-size: 0; }
  .nw-thumb-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
  .nw-thumb-kpi { block-size: 17px; background: var(--surface); border: 1px solid var(--border); border-radius: 3px; }
  .nw-thumb-block { flex: 1; background: var(--surface); border: 1px solid var(--border); border-radius: 3px; min-block-size: 0; display: flex; align-items: flex-end; gap: 3px; padding: 5px; }
  .nw-thumb-sparkbar { flex: 1; background: var(--search-border); border-radius: 2px 2px 0 0; }
  .nw-thumb-glyph {
    position: absolute;
    inset-block-end: 9px; inset-inline-end: 9px;
    inline-size: 26px; block-size: 26px;
    display: grid; place-items: center;
    border-radius: var(--radius-sm);
    background: var(--accent-soft); color: var(--accent);
  }
  .nw-thumb-glyph svg { inline-size: 15px; block-size: 15px; }
  .nw-gbody { padding: var(--space-4); display: flex; flex-direction: column; gap: var(--space-2); flex: 1; }
  .nw-gtitle { font-size: 15px; font-weight: 600; font-family: var(--font-head); }
  .nw-grole { font-size: var(--fs-meta); color: var(--text-muted); }
  .nw-gdesc { font-size: var(--fs-body); color: var(--text-soft); line-height: 1.6; flex: 1; }
  .nw-gprov { display: flex; align-items: center; gap: var(--space-2); font-size: 10.5px; color: var(--text-faint); flex-wrap: wrap; }
  .nw-gcta {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: var(--fs-meta); font-weight: 600; color: var(--accent);
    margin-block-start: var(--space-1);
  }
  .nw-gcta svg { inline-size: 13px; block-size: 13px; }
  .nw-gnum {
    position: absolute; inset-block-start: 9px; inset-inline-start: 9px;
    inline-size: 20px; block-size: 20px;
    display: grid; place-items: center;
    border-radius: 50%;
    background: var(--text); color: var(--surface);
    font-size: 10.5px; font-weight: 700;
    z-index: 1;
  }

  /* ---- responsive ------------------------------------------------------
     Everything hangs off --sidebar-w, so one token redefinition moves the
     sidebar, the header's inline-start and the main offset together. The
     header now begins AT the sidebar edge rather than spanning the viewport,
     so it has to follow the same token at every breakpoint. ---- */

  /* collapsed rail: the wordmark will not fit, so swap to the small mark */
  @media (max-width: 1279.98px) {
    :root { --sidebar-w: var(--sidebar-w-collapsed); }
    .nw-brand { justify-content: center; padding-inline: var(--space-2); }
    .nw-brand-logo { inline-size: 34px; background-image: var(--logo-mark); }
    .nw-brand-toggle { display: none; }
    .nw-nav-scroll { padding-inline: var(--space-2); }
    .nw-nav-label, .nw-nav-heading { display: none; }
    .nw-nav-link { justify-content: center; padding-inline: 0; }
    .nw-search { inline-size: 260px; }
    .nw-scope { min-inline-size: 190px; }
  }

  @media (max-width: 1023.98px) {
    .c3, .c4, .c5 { grid-column: span 6; }
    .c7, .c8, .c9 { grid-column: span 12; }
    .nw-search { display: none; }
  }

  /* phone: the sidebar leaves the flow and becomes a horizontal icon strip
     under the header. The flex container must be the <ul> inside
     .nw-nav-scroll — flexing .nw-sidebar itself would leave the items
     stacked, because the scroller is its only child. */
  @media (max-width: 767.98px) {
    :root { --sidebar-w: 0px; --main-pad-inline: var(--space-4); }
    .nw-sidebar {
      position: sticky;
      inset-block: auto;
      inset-block-start: var(--header-height);
      inline-size: auto;
      block-size: auto;
      flex-direction: row;
      align-items: center;
      gap: var(--space-2);
      overflow-x: auto;
      overflow-y: hidden;
      padding: var(--space-2);
      z-index: 995;
    }
    .nw-brand { padding: 0 var(--space-2) 0 0; flex: none; }
    .nw-brand-logo { inline-size: 30px; background-image: var(--logo-mark); }
    .nw-nav-scroll { flex: 1; overflow: visible; padding-inline: 0; }
    .nw-nav-scroll > ul { display: flex; align-items: center; gap: 4px; }
    .nw-nav-item { flex: none; }
    .nw-nav-link { margin: 0; padding: var(--space-2); min-block-size: 40px; }
    .nw-header { position: sticky; inset-inline-start: 0; }
    .nw-main { margin-inline-start: 0; margin-block-start: 0; }
    .nw-scope { min-inline-size: 110px; flex: 1 1 auto; max-inline-size: 190px; }
    .nw-scope-sub { display: none; }
    /* the header actions would otherwise take 306 of 375px and crush the scope */
    .nw-profile-text { display: none; }
    .nw-icon-btn { margin-inline: var(--space-1); }
    .nw-header-inner { padding-inline: var(--space-2); gap: var(--space-2); }
    .c3, .c4, .c5, .c6, .c7, .c8, .c9 { grid-column: span 12; }
    .nw-kpis { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
    .nw-grid { gap: var(--space-4); }
  }
}

/* == [P] print ============================================================ */
@layer print {
  @media print {
    @page { size: A4 landscape; margin: 12mm; }

    /* THE rule that matters. Without it Chrome drops every background and the
       charts, badges, meters and heatmaps all print as blank white boxes. */
    .nw-badge, .nw-prov, .nw-bar, .nw-bar-seg, .nw-track-fill, .nw-meter-fill,
    .nw-meter-mark, .nw-track-tick, .nw-donut-ring, .nw-gauge-ring, .nw-heat-cell,
    .nw-cohort-cell, .nw-stackbar-seg, .nw-spark-area, .nw-avatar, .nw-kpi-delta,
    .nw-step-mark, .nw-rail-dot, .nw-funnel-bar, .nw-cal-day, .nw-thumb-sparkbar,
    .nw-tile, .nw-chip, .nw-empty-ico, .nw-ribbon, .nw-gnum {
      -webkit-print-color-adjust: exact;
      print-color-adjust: exact;
    }

    html, body { background: var(--paper); }
    .nw-sidebar, .nw-icon-btn, .nw-seg, .nw-header-divider,
    .nw-toolbar, .nw-search, .nw-ribbon { display: none; }
    .nw-header { position: static; block-size: auto; border: none; padding-block: var(--space-3); }
    .nw-main { margin: 0; padding: 0; min-block-size: 0; }

    .nw-card, .nw-kpi, .nw-sync-strip, .nw-gcard { break-inside: avoid; box-shadow: none; }
    .nw-card-title, .nw-page-header { break-after: avoid; }
    thead { display: table-header-group; }
    tr { break-inside: avoid; }

    .nw-print-header { display: block !important; }
    a[href]::after { content: none; }
  }
  .nw-print-header { display: none; }
}
