/* ============================================================================
   THE PALETTE, one set of values for all nine workspaces. Each of them used to
   declare its own copy at slightly different numbers - --primary #2c6faf against
   #2f6fa5, --success #1f7a4d against #15803d, --danger #b3261e against #dc2626.
   Three to five points apart: invisible as variety, and the reason every ruling
   had to be applied nine times by hand instead of once.

   The four neutral ink steps are Spencer's, 2026-09-01: even ~35-point steps, warm
   against the paper, none pure black. See project-text-colour-scale.

   `:root` is rewritten to the sheet's scope by the consolidator, so this lands on
   `.deck` and reaches every workspace. A deck's own `:root` becomes an ID and would
   still outrank it - which is why the drifted copies were removed rather than left.
   ============================================================================ */
:root{--paper:#faf9f7; --surface:#fff; --sunken:#efece6; --line:#e5e0d8; --line-soft:#f0ede7; --ink-strong:#24211d; --ink:#423d36; --ink-muted:#6c665c; --faint:#948f85; --scrim:rgba(31,26,20,.38); --sheet-radius:14px; --sheet-lift:0 -8px 40px rgba(31,26,20,.30); --panel-lift:0 16px 44px rgba(31,26,20,.32); --panel-radius:12px; --primary:#2f6fa5; --blue-soft:#e8f0f7; --blue-fill:#2f6fa5; --on-fill:#fff; --success:#8a9475; --success-active:#6b7a58; --sage:#8a9475; --sage-deep:#6b7a58; --green-soft:#eef0e9; --warning:#b45309; --amber-soft:#fdf0e3; --danger:#b94b4b; --red-soft:#f7eceb; --amber-line:#e8c9a0; --amber-ink:#5c3d0b; --amber-link:#8a5a10; --red-line:#e3c3c1; --green-line:#d5dacd; --blue-line:#bcd6ec; --strong:#24211d;}

/* ============================================================================
   THE BUTTON STANDARD. Spencer, 2026-09-01. It applies to EVERY workspace, which
   is why it lives here rather than in any one of them.

     .btn-blue            PRIMARY actions
     .btn-green           SAVE / SUBMIT actions
     .btn-red             CANCEL / DELETE actions
     .btn-amber           the amber action - see the note below
     .btn-blue-ghost-sm   secondary actions, or where a small button fits better
     .btn-green-ghost-sm  secondary save/submit, or where a small button fits better
     .btn-red-ghost-sm    secondary cancel/delete, or where a small button fits better
     .btn-amber-ghost-sm  the secondary amber

   Modifier: .off for a control that is present but not yet available.
   Modifier: .square for a button that must not read as a pill - beside status chips, or
             anywhere the shapes around it are square. Composes with any colour and any size.

   THE COLOUR IS THE PURPOSE - not a decoration, and not a way to make a row look
   balanced. A Save is green wherever it appears, and a Cancel is red even when it
   sits beside a green Save.

   THERE IS NO NEUTRAL GREY BUTTON. Every button does one of those three things, so
   every button can say which. The patient portal had one grey ghost carrying TEN
   different purposes at once - Cancel, Decline, Withdraw, Back, Close, Pay this
   amount - so a grey Cancel and a grey Pay this amount looked identical and were
   opposites. That is what this standard exists to stop.

   NO INLINE COLOUR ON A BUTTON, EVER. If a button needs a colour the standard does
   not have, the standard is what changes.

   WHAT THIS DOES NOT GOVERN, and the distinction is worth keeping: header glyphs,
   a video call bar, a search field and a segmented control are not buttons in this
   sense, whatever their class is called. They are their own components with their
   own idiom, and forcing three purpose colours onto them would say something untrue.
   ============================================================================ */
/* 5px, and it is a ruling rather than a taste: more radius than that and a button reads
   as a pill or a token rather than something you press. And the drop shadow, because that
   is what says CLICKABLE - it is the only thing separating a button from a coloured label.
   Both apply to the ghosts too; a secondary button is still a button.

   The shadow is Spencer's own value, 2026-09-01, and it is the same shape as the one he
   set on the card: offset down and right rather than spread evenly, so the light in this
   design comes from one direction on every raised thing. */
/* 🔻 2026-09-08 - FLAT, 2px, 30px. Spencer, choosing from the specimen sheet:
   "2px radius at 30px size looks much cleaner to me, that's what we want using flat."

   THE CORNER IS THE POINT AND IT IS NOT A TASTE. Our card standard is SQUARE - the
   card, the list-item card and every frame in every deck are border-radius:0 - and a
   6px button inside a 0px card never sits right. 2px is the smallest corner that still
   reads as chosen rather than as an element nobody styled, and against a square card it
   is close enough to agree.

   ⛔ AND THE SHADOW IS GONE. The old `2px 2px 5px rgba(60,60,60,.2)` sat on every button
   including the small ghosts, and it was the decks' own invention: the application's
   button.tsx has never put a shadow on a filled button. The colour is the affordance;
   a drop shadow under a saturated fill is a 2013 treatment doing nothing the fill does
   not already do.

   📏 30px with 13px type, which is the body size - a 14px label in a 13px interface is
   louder than the content beside it, and that was the other half of "too big". */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;
  font:inherit;font-size:13px;font-weight:500;min-height:30px;padding:0 12px;
  border-radius:2px;border:1px solid transparent;cursor:pointer;white-space:nowrap}
.btn-blue{background:var(--blue-fill,var(--primary));color:var(--on-fill,#fff)}
.btn-green{background:var(--success);color:var(--on-fill,#fff);
  /* Sage is 3.19:1 under white, so the label is drawn with a darker-sage halo rather
     than on a darker fill - Spencer, 2026-09-09: the sage we had, with a stroke of the
     darker sage on the white text. A shadow, never -webkit-text-stroke: a real stroke
     paints half inside the glyph and thins the white wherever paint-order is missing. */
  text-shadow:0 0 1px var(--success-active),0 0 1px var(--success-active),0 1px 1px var(--success-active)}
.btn-red{background:var(--danger);color:var(--on-fill,#fff)}

/* AMBER, added 2026-09-01. It is the one filled variant that is TINTED rather than
   saturated - dark amber ink on a light amber fill, with a border to hold its edge. That
   is deliberate and it is why amber can sit inside an amber panel without either
   disappearing into it or shouting over the blue that is the page's primary. */
.btn-amber{background:var(--amber-fill,#f7dcb4);color:var(--amber-ink,#8a4008);
  border-color:var(--amber-line,#e6c391)}

/* 🔻 2026-09-08 - SMALL IS FOR TWO PLACES AND NO OTHERS, and it is never mixed with
   the regular size. Spencer: "those shouldn't be used alongside regular sized buttons,
   it just makes them look off when you do that. The only time the small variants are
   used is in secondary overlays or things like the inline patient profile fields
   save/cancel where a big button is just too much."

     ✅ a secondary overlay
     ✅ an inline field's own save / cancel, where a full-size pair would swamp the field
     ⛔ everywhere else, and NEVER beside a regular button

   ⚠️ The failure this fixes is a card header: a small ghost "View all" sitting next to
   a full-size "Add", which reads as one of them being a mistake. Two buttons in one row
   are the same size or one of them does not belong there.

*/
/* GHOSTS COME IN BOTH SIZES, as of 2026-09-05, and this comment used to say the opposite.
   It argued the ghosts were small BY DEFINITION because the size difference IS the hierarchy,
   and that a secondary control therefore needed no second colour. The first half is still true
   and the conclusion was wrong: it welded size to weight in exactly the way the 2026-09-01
   ruling unwelded them for the solids, and it left a full-size primary with no secondary of its
   own height to stand beside. A deck wanting that pair either mismatched heights or invented a
   class, which is how undifferentiated grey controls got in before.
   Spencer, 2026-09-05: "Just create a full size ghost button."
   The full-size ghost takes .btn's own 34px and 12px padding; only the fill and ink differ. */
/* 🔻 2026-09-08 - THE GHOST'S EDGE IS THE CARD'S HAIRLINE, not a saturated outline of
   its own purpose. A toolbar of four purpose-coloured borders reads as decoration; the
   INK still carries the purpose, at 5:1 or better, which is what a reader actually
   identifies the control by. Same token as the card edge, so a button and the box it
   sits in agree about what an edge is. */
.btn-blue-ghost,.btn-green-ghost,.btn-red-ghost,.btn-amber-ghost{background:transparent;
  border-color:var(--line)}
.btn-blue-ghost{color:var(--primary)}
.btn-green-ghost{color:var(--success)}
.btn-red-ghost{color:var(--danger)}
/* Same reasoning as the small amber ghost further down: --warning rather than the darker
   --amber-ink, which reads as muddy with no fill behind it. */
.btn-amber-ghost{color:var(--warning)}

/* CHOOSING BETWEEN THE TWO SIZES. Full size when it stands beside a full-size primary, so the
   pair shares a baseline and a height. Small inside a row, a toolbar or a list item, where the
   surrounding type is smaller and a 34px control would shout. */
/* SOLID AT THE SMALL SIZE. Spencer, 2026-09-01: the matrix had solid-large and ghost-small
   and nothing else, so "small" and "ghost" were welded together - wanting a small button meant
   accepting an outline one. Size and weight are independent choices. Same metrics as the ghost
   smalls, so a solid and a ghost in one row are the same size.
   They keep the 5px radius every other button carries. It was briefly squared to tell a row-level
   Edit apart from the status chips beside it - the row now shows a pencil instead, so the shape
   never had to do that job. */
.btn-blue-sm,.btn-green-sm,.btn-red-sm,.btn-amber-sm{min-height:26px;padding:0 9px;font-size:12.5px}
.btn-blue-sm{background:var(--blue-fill,var(--primary));color:var(--on-fill,#fff)}
.btn-green-sm{background:var(--success);color:var(--on-fill,#fff);text-shadow:0 0 1px var(--success-active),0 0 1px var(--success-active),0 1px 1px var(--success-active)}
.btn-red-sm{background:var(--danger);color:var(--on-fill,#fff)}
.btn-amber-sm{background:var(--amber-fill,#f7dcb4);color:var(--amber-ink,#5c3d0b);
  border-color:var(--amber-line,#e6c391)}
/* THE SMALL SIZE IS ONE SIZE. These four were left at 27px and 13px when the small solids
   moved to 26px and 12.5px, so "small" quietly meant two different buttons - and a ghost
   beside a solid at the same nominal size stood a pixel taller with larger type. Measured in
   the patient-portal deck 2026-09-08: 53 ghosts at 27px against 20 solids at 26px. */
.btn-blue-ghost-sm,.btn-green-ghost-sm,.btn-red-ghost-sm,.btn-amber-ghost-sm{
  background:transparent;min-height:26px;padding:0 9px;font-size:12.5px}
.btn-blue-ghost-sm{color:var(--primary);border-color:var(--line)}
.btn-green-ghost-sm{color:var(--success);border-color:var(--line)}
.btn-red-ghost-sm{color:var(--danger);border-color:var(--line)}
/* The amber ghost takes --warning for its ink rather than the darker --amber-ink: with no
   fill behind it the deeper brown reads as muddy, where --warning stays legibly amber. */
.btn-amber-ghost-sm{color:var(--warning);border-color:var(--line)}
/* SQUARE, AS A MODIFIER RATHER THAN FOUR MORE CLASSES. Spencer, 2026-09-04: he wanted a small
   solid SQUARE option alongside the existing sets, not instead of them - a solid button at the small
   size can read as a status pill when there are real pills beside it, and the square kills that
   reading. Written as a modifier so it composes with every colour and both sizes instead of
   multiplying the matrix: .btn .btn-blue-sm .square is the small solid square. */
.btn.square{border-radius:0}

/* AN ICON INSIDE A BUTTON SITS FLAT. Spencer, 2026-09-01. The button already carries the
   shadow, and two shadows on one control reads as the icon floating above its own button.
   An icon keeps its own shadow only when it IS the control - a bare glyph with no box
   behind it, like the header on a phone. */
.btn svg,.btn i,.btn .qsvg{filter:none}

.btn.off{opacity:.45}

/* BACK IS A WAY OUT, NOT AN ACTION. Spencer, 2026-09-01. Drawn as a button beside Continue
   it read as a third choice of equal weight, when it is the door you came in through - so it
   is text only, and margin-right:auto puts it at the far left of its row, nowhere near the
   buttons that commit something. */
.back-link{display:inline-flex;align-items:center;gap:6px;margin-right:auto;
  font-size:13px;font-weight:500;color:var(--primary);cursor:pointer;
  background:none;border:0;box-shadow:none;padding:0}
.back-link i{width:16px;height:16px;flex:none;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 15V9'/%3E%3Cpath d='M15 15h-3v4l-7-7 7-7v4h3v6z'/%3E%3C/svg%3E") no-repeat center/16px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 15V9'/%3E%3Cpath d='M15 15h-3v4l-7-7 7-7v4h3v6z'/%3E%3C/svg%3E") no-repeat center/16px}

/* THE APPOINTMENT-STATUS DOTS. Five states, and they were painted inline 168 times -
   the same colour repeated rather than named, which is how one of them came to be the
   most-used colour in the workspace while never appearing in any palette.
   Status is a DIFFERENT AXIS from the action palette: blue there means "this is the
   primary thing to press", and an Arrived-Late dot means nothing of the kind. That is
   why these are their own names rather than --primary and --success. */
/* Spencer, 2026-09-01: the status dots use the standard palette. Five states, five of our
   own colours, each one meaning what it means everywhere else - on the books, running late,
   away, finished, called off. */
:root{--appt-booked:var(--success); --appt-arrived:var(--danger); --appt-cancelled:var(--faint); --appt-done:var(--primary); --appt-break:var(--warning);}
.fcdot{flex:none;width:9px;height:9px;border-radius:50%;margin-top:6px}

.fcdot.is-appt-booked{background:var(--appt-booked)}
.fcdot.is-appt-arrived{background:var(--appt-arrived)}
.fcdot.is-appt-cancelled{background:var(--appt-cancelled)}
.fcdot.is-appt-done{background:var(--appt-done)}
.fcdot.is-appt-break{background:var(--appt-break)}

/* A SELECT'S CHEVRON IS A DRAWING, NOT A CHARACTER. It was the text glyph U+2304, which
   sits on the font's baseline and carries the font's vertical metrics with it - so it could
   not be centred in its box however the box was aligned, and every select in the portal had
   one sitting slightly high. A mask is a box, and a box centres. */
.selbox::after,.sel::after,.fsel b .dn,.selchv{content:'';flex:none;
  width:16px;height:16px;background:currentColor;color:var(--ink-muted);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat center/16px;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat center/16px}

/* A SELECT SCROLLS. It had been listing four options and then a line reading "and 16 more" -
   a summary of what the control was hiding, which is something a LIST does. A select shows
   the rest when you keep going, so the box has a height and the overflow is the scroll. */
.drop{max-height:190px;overflow-y:auto;scrollbar-width:thin}

/* AN EXPLANATION IS AMBER. BLUE MEANS CHOSEN. Spencer, 2026-09-01: the booking-request
   screen painted its description box and its selected day chips the same light blue, so on
   one screen blue meant both "here is what this is" and "you picked this". Blue keeps the
   second job, which is the one it does everywhere else in the product. */
/* THE LIGHT-AMBER PANEL, and it carries its own two inks. Text on amber is not the same
   problem as a warning on white: --warning is a strong orange meant to be noticed against
   paper, and on an amber fill it reads shouted rather than explained. These two are made
   for the surface - a deep brown for prose, a lighter one for a link, both legible on the
   fill without competing with it.
   Anything inside the panel inherits them, which is the point of it being a class: a box
   with this background never has to say what colour its own text is. */
.amber-panel,.info,.alert.warn,.alert.info,.pd-warn,.bknote{border:1px solid var(--amber-line);background:var(--amber-soft);
  border-radius:8px;padding:8px 12px;font-size:13px;line-height:1.5;color:var(--amber-ink)}
.info{display:flex;gap:8px;align-items:flex-start}
.amber-panel b,.info b,.alert.warn b,.alert.info b,.pd-warn b,.bknote b,.amber-panel strong,.info strong{color:var(--amber-ink)}
.amber-panel a,.info a,.alert.warn a,.alert.info a,.pd-warn a,.bknote a,.amber-panel .alink,.info .alink,
.amber-panel button,.info button{color:var(--amber-link)}

/* ============================================================================
   THE COMPONENTS EVERY WORKSPACE SHARES - the card, the item card, the list row,
   the empty state, the chevron - and the type scale they are set in.

   These lived in the patient portal's own sheet, which is why every ruling about a
   card or a heading size reached one workspace of nine. Moved rather than copied: a
   rule that exists in two files is the drift this is meant to close.
   ============================================================================ */
.card{min-width:0}
/* THE PANEL INSIDE A SCREEN. Sixteen patient-portal decks carried this byte-for-byte in the
   pre-square style - a rounded, bordered box - so the one thing every ruling of the last two days
   agreed on was the one thing those screens could not be given in a single edit.
   Square, lifted, no visible border, same 2px offset shadow as the card treatment above.
   THE BORDER STAYS AS `transparent` ON PURPOSE: twenty of these carry an inline `border-color` to
   become an amber or a green notice, and removing the border would silently make every one of
   those declarations do nothing. Spencer, 2026-09-01. */
/* A SECTION IS NOT A CARD. Spencer, 2026-09-02: "cards are list items, not entire
   sections". This had the full card treatment - a 2px lift and the 4px gap rhythm - so a
   whole care plan, header and activities and goals together, read as one thing you could
   act on, while the rows inside it had no treatment at all.
   SQUARE STAYS; THE LIFT IS WHAT MOVED. The lift is what says "press me", so it belongs to
   the list item and the hairline belongs to the container it sits in. */
.screen .card,.scr .card,.wscreen .card,.deskmain .card{background:var(--surface);
  border:1px solid var(--line);border-radius:0;padding:12px 14px}

/* THE LIST-ITEM CARD, IN ONE PLACE. Spencer, 2026-09-04: "your card style looks different in
   these decks than all of our other cards... are you inline styling things again instead of using
   reusable css from our single stylesheet?" Six patient-portal decks had each written this out by
   hand, so six lists could drift from one another - and one had, because a leftover rounded
   container was still clipping its rows lift and turning four cards into one grouped block.
   Two rules, because a list item is always inside something: the ITEM takes the treatment, and
   the box it sits in gives its own up. Layout stays with the deck - a coverage row and a
   preference row are not laid out alike - because only the treatment is what rulings are about. */
/* THE CARD IS THE APPOINTMENTS ONE. Spencer, 2026-09-04: "I like the way the appointments cards
   look better." It had carried a hairline AND a 5px lift with 12/14 padding - the border and the
   shadow both drawing the same edge, which reads heavy down a long list. No border, a tighter 3px
   lift and 8/12 padding is the one that looks right, so it is the standard now.
   The shadow keeps the WARM ink rather than the pure black appointments was using: same weight on
   screen, and nothing in this palette is pure black. */
.lcard{background:var(--surface);border:0;border-radius:0;
  margin-bottom:4px;padding:8px 12px;box-shadow:2px 2px 3px rgba(31,26,20,0.10)}
.card:has(> .lcard),.lcard-host{background:none;border:0;border-radius:0;box-shadow:none;
  padding:0;overflow:visible}

/* THE DRILL-DOWN OVERLAY, IN ONE PLACE. Spencer, 2026-09-04: "this is another place where you
   are showing something as its own page that is actually an overlay." Nine patient-portal decks
   had each hand-rolled a scrim and a sheet, at four different opacities - the same drift as the
   list-item card above, one level up. Lifted from the collaboration-teams sheet, which was the
   most complete of the nine.
   ON A PHONE IT RISES FROM THE BOTTOM, because that is where a thumb is. At a desk it is a
   CENTRED panel: full width there would just be a second page wearing a shadow. */
.ovhost{position:relative}
.ovscrim{position:absolute;inset:0;background:var(--scrim);z-index:20}
.ovwrap{position:absolute;inset:0;display:grid;place-items:end center;z-index:21}
/* min-height:0 on both, or the sheet ignores its own max-height: a grid item takes min-height:auto,
   which resolves to the content min-content height and BEATS max-height. A long form then renders
   a full-height sheet instead of scrolling inside its body. */
.ovsheet{width:100%;max-height:88%;min-height:0;display:flex;flex-direction:column;background:var(--surface);
  border-top-left-radius:var(--sheet-radius);border-top-right-radius:var(--sheet-radius);box-shadow:var(--sheet-lift)}
.ovgrab{width:36px;height:4px;border-radius:99px;background:var(--line);margin:8px auto 0}
.ovhd{display:flex;align-items:center;gap:9px;padding:10px 14px 0}
.ovhd b{flex:1;min-width:0;font-size:17px;font-weight:500;color:var(--ink-strong)}
.ovbody{padding:12px 14px 16px;overflow:auto;min-height:0}
.board .ovwrap{place-items:center}
.board .ovsheet{width:min(520px,92%);border-radius:var(--panel-radius);box-shadow:var(--panel-lift)}
.board .ovgrab{display:none}
/* A SHEET RISES FROM THE BOTTOM OF THE SCREEN, NOT THE BOTTOM OF THE CONTENT. The scrim is placed
   against the app, and an app is only as tall as what is in it - so on a short page the dimming
   stopped half way down and the sheet sat in mid-air with lit background beneath it. Making the app
   fill the screen when it hosts an overlay is the whole fix, and it is scoped to those screens so
   that no ordinary page changes. */
/* THE DIM COVERS THE WHOLE FRAME, HEADER INCLUDED. It had been placed against the app, which is
   only the body - so the practice name, the avatar, the menu and the quick actions stayed lit
   while a modal was open. That says they are pressable when they are not, and offers the header
   as the way out when the close is. The product does it correctly: its dialog overlay is fixed to
   the viewport through a portal. In a deck the SCREEN is the viewport, so the screen hosts it. */
.screen:has(> .ovscrim){position:relative}

.thread{min-width:0}
.list-row{min-width:0}
.empty{text-align:center;padding:24px 16px;color:var(--ink-muted);font-size:13px}
.app-card h4{font-size:13px;font-weight:500;margin:0}
/* the due line is the quietest true thing on the card */
/* A DUE DATE IS AMBER. This carried only a size here while the weight and the colour that
   make it a due date lived in one deck, so no other deck could match it by using the class.
   Spencer, 2026-09-01. */
/* ONLY THE LABEL IS AMBER. The whole line used to be, so a nine-row list was nine full
   lines of amber and the colour stopped meaning anything. The two words that say a deadline
   exists carry it; the date itself is ordinary ink. Spencer, 2026-09-01. */
.due-line{font-size:11px;font-weight:400;color:var(--ink);margin-top:4px}
.due-line .lbl{color:var(--warning);font-weight:600}
/* "+2 more" rides under the chip it belongs to, instead of floating at the
   bottom of the card with nothing to attach to */
.chip-col{display:inline-flex;flex-direction:column;align-items:flex-end;gap:2px}
.chip-col .more{font-size:11px;font-weight:500;color:var(--primary);
  background:none;border:0;padding:0;cursor:pointer;line-height:1.2;
  /* the plus comes from ::before, and the 5px gap the row treatment gives it
     rendered as "+ 2 more" - it belongs to the number, not beside it */
  gap:2px}
.app-card{padding:12px 14px;border-left:3px solid transparent}
/* THE COLOURED EDGE. Spencer, 2026-08-31, pointing at MyChart's list: a square
   white card with a bar down its left edge. The bar takes the card's own CATEGORY
   colour - the same four already ruled and named - so the stack is scannable by
   edge alone, before a word is read, and the chip at the other end says the same
   thing in words for anyone who cannot use the colour. */
.app-card:has(.chip-task){border-left-color:var(--type-task)}
.app-card:has(.chip-msg){border-left-color:var(--type-message)}
.app-card:has(.chip-pay){border-left-color:var(--type-payment)}
/* The fourth category had a colour and a chip and no edge rule, so an
   appointment was the one kind of attention item the stack could not be
   scanned for by edge alone. */
.app-card:has(.chip-appt){border-left-color:var(--type-appointment)}
.app-card + .app-card{border-top:0}
/* ⚠️ .h1 is my-visits-and-results' own name for the same thing. It carried 21px at
   weight 600 against everybody else's 18 at 500, and painted with var(--strong) - a
   token that does not exist anywhere in the portal, so it was silently falling back
   to inherited ink. One screen title, one rule. */
.view-title,.h1{font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--ink-strong);margin:0}
.card-h{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-bottom:2px}
.card-h b{font-size:15px;color:var(--ink-strong);letter-spacing:-.01em}
.sec-label{font-size:13px;font-weight:500;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-muted);margin:12px 0 2px}
.crumb + .sec-label{margin-top:0}
/* ONLY THE HEADING IS A LINE OF ITS OWN. Unqualified, this made every bold inside an empty
   state a block, so one sentence with two emphasised phrases rendered as four lines. */
.empty > b:first-child{display:block;color:var(--ink-strong);font-size:15px;margin-bottom:4px}
/* ============================================================================
   ONE CHEVRON, ONE SIZE. It is drawn under eight different class names - go,
   chev, chev-r, chev2, row-go, sw-go, arrow, tapme - and every one of them
   means the same thing: this row opens. It was appearing at 13, 15, 16 and 18,
   and two sections used two sizes inside themselves.
   ⭐ 15px because that is what .chev-r already carried here. The mark is
   furniture rather than type, and furniture that changes size between two rows
   of one list reads as two different controls.
   ============================================================================ */
.go,.chev,.chev-r,.chev2,.row-go,.sw-go,.arrow,.tapme{font-size:15px}

/* ============================================================================
   THE BASE EVERY WORKSPACE ALREADY AGREED ON. 215 rules that were byte-identical
   in all six multi-deck workspaces - the board frame system, the alert, the action
   bar, the section head, the responsive breakpoints. Copied into every deck, that
   was roughly 8,600 copies of 215 things, and it is why a ruling about any of them
   had to be applied forty times.

   Kept in the order one deck had them: equal-specificity rules are decided by
   source order, so sorting them would have quietly changed which one wins.
   A deck that says something DIFFERENT keeps its own copy and still outranks this.
   ============================================================================ */
:where(b,strong){font-weight:500}
:where(h1,h2,h3,h4,h5,h6){font-weight:600}
:root{--deck:#14161c;--deck-2:#1b1e26;--deck-rule:#2a2e39;--deck-ink:#e8eaf0;--deck-muted:#9aa2b4;--deck-faint:#6b7385;--sans:"Manrope",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,monospace;}
.wrap{max-width:1180px;margin:0 auto;padding:44px 24px 92px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--deck-faint);margin:0 0 12px}
.lede{font-size:16.5px;color:var(--deck-muted);max-width:66ch;margin:0}
.lede b{color:var(--deck-ink);font-weight:500}
/* THE CHROME/CONTENT BOUNDARY. A deck rule is `#s-<deck> ...` and outranks anything the
   shared sheet can say, so without !important the deck's uppercase mono section-heading
   style reaches inside the frames and titles the application in it. */
.screen h2,.screen h3,.screen h4{font-family:var(--sans)}
.screen h1,.screen h2{font-family:var(--sans)!important;text-transform:none!important;
  letter-spacing:-.02em!important;color:inherit}
.note{background:var(--deck-2);border:1px solid var(--deck-rule);border-left:3px solid #7cc6ff;border-radius:10px;padding:16px 18px;margin:0 0 24px;color:var(--deck-muted);font-size:14.5px;line-height:1.55}
.note b{color:var(--deck-ink);font-weight:500}
.note i{color:var(--deck-ink);font-style:normal;font-weight:600}
.note.ok{border-left-color:#8fe0a8}
.note.ok b{color:#8fe0a8}
.note.warn{border-left-color:#ffb37c}
.note.warn b{color:#ffb37c}
.notes{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px}
.notes .note{margin:0;padding:11px 14px;font-size:12.5px;flex:1 1 320px}
.cap{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--deck-faint);margin:0 0 9px}
.cap b{color:var(--deck-muted);font-weight:600}
.tag{display:inline-block;font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;padding:2px 7px; border-radius:4px;background:#2e2317;color:#ffb37c;border:1px solid #6b552f;margin-left:8px;vertical-align:middle}
.gapbox{background:#2e2317;border:1px solid #6b552f;border-left:3px solid #ffb37c;border-radius:10px; padding:16px 18px;margin:0 0 22px;color:var(--deck-muted);font-size:14.5px;line-height:1.55}
.gapbox b{color:#ffb37c;font-weight:500}
.gapbox i{color:var(--deck-ink);font-style:normal;font-weight:600}
.ruled{background:#16281d;border:1px solid #2f6b46;border-left:3px solid #8fe0a8;border-radius:10px; padding:15px 17px;margin:0 0 22px;color:var(--deck-muted);font-size:14.5px;line-height:1.55}
.ruled b{color:#8fe0a8;font-weight:500}
.ruled i{color:var(--deck-ink);font-style:normal;font-weight:600}
.board{background:var(--paper);border-radius:12px;overflow:hidden;box-shadow:0 16px 40px rgba(0,0,0,.42); width:max-content;max-width:100%}
.board .scale{overflow:hidden}
/* TWO FRAMES IN A ROW NEED AIR BETWEEN THEM. Frames inside a .row get the 32px row gap; frames that
   are plain siblings of a section get nothing, so a phone frame and the wide frame under it butted
   together with a zero gap and read as one broken screen. */
.fitbox + .fitbox,.fitbox + .board,.board + .fitbox,.board + .board,
.device + .device,.device + .board,.board + .device{margin-top:32px}
.board .screen{width:1366px;height:768px;overflow-y:auto;overflow-x:hidden;transform-origin:top left; transform:scale(.818);background:var(--paper);color:var(--ink);display:flex;flex-direction:column}
.board.w-sm .screen{width:1024px;transform:scale(1)}
.board.w-lg .screen{width:1600px;height:900px;transform:scale(.6988)}
.board.w-xl .screen{width:1920px;height:1080px}
/* THE PATIENT PORTAL'S OWN WIDTHS, moved here from its private frame system rather than reconciled.
   Its laptop is 1280x800 and this sheet's default board is 1366x768; its tablet is 834x1194 and w-sm
   is 1024. Those are two different answers to "how wide is a laptop", and choosing between them is a
   decision about the drawings rather than a rename - so the values move intact and the question stays
   open. What is closed is having two frame SYSTEMS. */
.board.w-lap .screen{width:1280px;height:800px;transform:scale(.6)}
.board.w-tab .screen{width:834px;height:1194px;transform:scale(.6)}
.board.w-tabl .screen{width:1194px;height:834px;transform:scale(.6)}
.board.w-sm .deskbody,.board.w-ph .deskbody{min-height:0}
.board.w-sm .deskgrid{display:grid;grid-template-columns:1.3fr 1fr;gap:12px}
.board.w-ph .deskgrid{display:flex;flex-direction:column;gap:12px}
.board.w-sm .sec .rows,.board.w-ph .sec .rows{max-height:164px;overflow-y:auto; scrollbar-width:thin;padding-right:2px}
.board.w-sm .today .rows,.board.w-ph .today .rows{max-height:none;overflow-y:visible}
.board.w-sm .sec .rows,.board.w-ph .sec .rows{scrollbar-color:var(--line) transparent}
.board.w-ph .deskmain{padding:8px 10px 10px}
.board.w-ph .today .sec,.board.w-sm .today .sec{overflow-x:auto}
.board.w-ph .today .row,.board.w-sm .today .row{min-width:488px}
.chrome{background:var(--surface);border-bottom:1px solid var(--line);padding:0 16px;min-height:51px;display:flex; align-items:center;gap:12px}
.chrome .brand{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--ink-strong)}
.chrome .mark{width:26px;height:26px;border-radius:6px;background:var(--primary);color:#fff;display:grid; place-items:center;font-size:13px;font-weight:500}
.chrome .ws{font-size:12px;color:var(--ink-muted);border:1px solid var(--line);border-radius:6px;padding:3px 9px}
.chrome .sp{flex:1}
.chrome .who{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-muted)}
.chrome .av{width:26px;height:26px;border-radius:50%;background:var(--blue-soft);color:var(--primary); display:grid;place-items:center;font-size:10.5px;font-weight:500}
.chrome{gap:14px}
.chrome .hactions{margin-left:auto;display:flex;align-items:center;gap:8px;flex:1;min-width:0;max-width:760px}
.chrome .hactions .searchbtn{flex:1;min-width:0}
.chrome .me-av{order:98;width:30px;height:30px;flex:none;border-radius:50%; background:linear-gradient(150deg,#cfe0f0,#9dbdd8);color:#22384d;font-size:11.5px;font-weight:500; display:grid;place-items:center;letter-spacing:.02em}
.chrome .burger{order:99;width:32px;height:30px;flex:none;border:1px solid var(--line);border-radius:7px; background:no-repeat center/17px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%233f3b35' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6h16'/%3E%3Cpath d='M4 12h16'/%3E%3Cpath d='M4 18h16'/%3E%3C/svg%3E")}
.crumbrow .assist,.chrome .sh-tools .sh-assistant{margin-left:auto;width:30px;height:30px;flex:none;border-radius:7px;
  /* A SUBTLE LIFT. The assistant is the one amber mark on a screen of blue controls, and the
     shadow is what stops it reading as a flat sticker printed on the page. */
  filter:drop-shadow(1px 1px 2px rgba(60,60,60,.28)); background:no-repeat center/26px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23d97706' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.992 16.342a2 2 0 0 1 .094 1.167l-1.065 3.29a1 1 0 0 0 1.236 1.168l3.413-.998a2 2 0 0 1 1.099.092 10 10 0 1 0-4.777-4.719'/%3E%3Cpath d='M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3'/%3E%3Cpath d='M12 17h.01'/%3E%3C/svg%3E")}
.board.w-xl .deskwrap{width:100%}
.deskwrap{width:100%;flex:1;min-height:0;display:flex;flex-direction:column}
.board.w-sm .deskwrap,.board.w-ph .deskwrap{width:100%;display:block;flex:none}
.screen *{scrollbar-width:thin;scrollbar-color:rgba(33,31,28,.16) transparent}
.screen *::-webkit-scrollbar{width:7px;height:7px}
.screen *::-webkit-scrollbar-track{background:transparent}
.screen *::-webkit-scrollbar-thumb{background:rgba(33,31,28,.16);border-radius:4px; border:2px solid transparent;background-clip:content-box}
.screen *::-webkit-scrollbar-thumb:hover{background:rgba(33,31,28,.3);background-clip:content-box}
.screen *::-webkit-scrollbar-button{display:none;width:0;height:0}
.screen *::-webkit-scrollbar-corner{background:transparent}
.deskbody{display:flex;flex:1;min-height:0}
.board.w-sm .deskbody,.board.w-ph .deskbody{display:block;flex:none}





/* ============================================================================
   THE BREADCRUMB, ONCE. Measured across the patient portal before this existed: SIX treatments,
   three class names, three colours and four paddings, because three decks had their own copy of
   the row and the rest fell back to whatever a flat grey string inherited.
   The three names are all here deliberately - `.crumb` is the patient portal's, `.crumbrow` the
   staff decks', `.ak-crumb` the framed one - and a deck must not restate any of them.
   THE TREATMENT IS THE APP'S OWN: the first segment is a link and is blue, the separator is
   faint, and the page you are on is ink-strong at 500. A trail whose last segment looks like
   its parents does not say where you are.
   ============================================================================ */
.crumb,.crumbrow,.ak-crumb{display:flex;align-items:center;gap:6px;font-size:13px;padding:0 0 2px}
.crumb .c1,.crumbrow .c1,.ak-crumb .c1{color:var(--primary)}
.crumb .sep,.crumbrow .sep,.ak-crumb .sep{color:var(--faint)}
.crumb .c2,.crumbrow .c2,.ak-crumb .c2{font-weight:500;color:var(--ink-strong)}
/* a middle segment is a link too - only the last one is where you are */
.crumb .cm,.crumbrow .cm,.ak-crumb .cm{color:var(--primary)}












.deskmain{flex:1;min-width:0;min-height:0;padding:16px;display:flex;flex-direction:column;gap:9px}
.actionbar{display:flex;align-items:center;gap:8px}
.searchbtn{flex:1;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:2px; background:var(--paper);padding:6px 10px;font-size:12.5px;color:var(--faint);text-align:left}
.searchbtn .ic{width:14px;height:14px;flex:none;background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23948f86' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cpath d='m21 21-4.3-4.3'/%3E%3C/svg%3E")}
.searchbtn kbd{margin-left:auto;border:1px solid var(--line);background:var(--surface);border-radius:4px; padding:0 5px;font:inherit;font-size:10.5px;color:var(--faint)}
.dbtn{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:6px 12px;font-size:12.5px; font-weight:500;white-space:nowrap;border:1px solid transparent}
.dbtn.blue{background:var(--primary);color:#fff}
.dbtn.ghost{background:transparent;color:var(--primary);border-color:var(--line)}
.dbtn .ic{width:14px;height:14px;flex:none}
.ic-plus{background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect width='18' height='18' x='3' y='4' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M16 19h6'/%3E%3Cpath d='M19 16v6'/%3E%3C/svg%3E")}
.ic-uplus{background:no-repeat center/14px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232c6faf' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 21a8 8 0 0 1 13.292-6'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='M19 16v6'/%3E%3Cpath d='M22 19h-6'/%3E%3C/svg%3E")}
.deskgrid{display:grid;grid-template-columns:1.62fr 1fr;gap:12px;align-items:stretch; min-width:0;flex:1;min-height:0}
.deskgrid > *{min-width:0;min-height:0;display:flex;flex-direction:column;overflow:hidden}
.board.w-sm .deskgrid > *,.board.w-ph .deskgrid > *{display:block;overflow:visible}
.deskgrid > div > .sec{display:flex;flex-direction:column;min-height:0;flex:0 0 auto}
.deskgrid > div > .sec[data-rows] .rows{flex:0 0 auto; max-height:calc(var(--r) * 38px - 3px)}
.deskgrid > div > .sec[data-rows="2"]{--r:2}
.deskgrid > div > .sec[data-rows="3"]{--r:3}
.deskgrid > div > .sec[data-rows="4"]{--r:4}
.deskgrid > div > .sec[data-rows="5"]{--r:5}
.deskgrid > div > .sec .sechead{flex:0 0 auto}
.deskgrid > div > .sec .rows{flex:1 1 auto;min-height:0;overflow-y:auto;scrollbar-width:thin;padding-right:2px}
.board.w-sm .rail,.board.w-ph .rail{overflow:visible}
.sec + .sec{margin-top:4px;border-top:1px solid var(--line-soft);padding-top:5px}
.sechead{display:flex;align-items:center;gap:7px;margin-bottom:5px}
.sechead h3{margin:0;font-size:10.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase; color:var(--ink-muted)}
.sechead .n{font-size:10.5px;font-weight:500;color:var(--faint)}
.sechead .door{margin-left:auto;font-size:11px;font-weight:500;color:var(--primary)}





















.sechead h3{font-size:17px;font-weight:500;letter-spacing:-.17px;text-transform:uppercase; color:#24211d}
.sechead .n{font-size:13px;font-weight:500;color:var(--warning)}
.sechead{gap:8px;margin-bottom:4px}
.board.w-ph .sechead h3{font-size:15px;letter-spacing:0}
.board.w-ph .sechead .n{font-size:11.5px}
.sec .row + .row{margin-top:0;border-top:1px solid var(--line-soft)}
.rows .none{padding:2px 4px 4px;font-size:11.5px;color:var(--faint)}
.pair{display:flex;gap:34px;flex-wrap:wrap;align-items:flex-start}
.screen .row,.wscreen .row,.scr .row,.deskmain .row{display:grid;grid-template-columns:76px 156px minmax(0,1fr) 104px 40px;align-items:center; gap:10px;border-radius:0;padding:6px 10px;min-height:36px;white-space:nowrap}
.screen .row .t,.wscreen .row .t,.scr .row .t,.deskmain .row .t{font-size:12px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.screen .row .nm,.wscreen .row .nm,.scr .row .nm,.deskmain .row .nm{display:flex;align-items:center;gap:7px;min-width:0;font-size:12.5px;font-weight:500; color:var(--ink-strong)}
.screen .row .nm .who,.wscreen .row .nm .who,.scr .row .nm .who,.deskmain .row .nm .who{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.pav{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center; font-size:9px;font-weight:500;letter-spacing:.02em;color:#fff; background:linear-gradient(150deg,#c9d8e6,#8ba7bf);overflow:hidden}
.pav img{width:100%;height:100%;object-fit:cover;display:block}
.pav.p1{background:linear-gradient(150deg,#e2cdbd,#c19a76)}
.pav.p2{background:linear-gradient(150deg,#cfd8c5,#93a97f)}
.pav.p3{background:linear-gradient(150deg,#d6c9df,#a48bb8)}
.pav.p4{background:linear-gradient(150deg,#c9d8e6,#8ba7bf)}
.board.w-sm .pav,.board.w-ph .pav{display:none}
.screen .row .de,.wscreen .row .de,.scr .row .de,.deskmain .row .de{font-size:11.5px;color:var(--ink-muted);min-width:0;overflow:hidden;text-overflow:ellipsis}
.screen .row .st,.wscreen .row .st,.scr .row .st,.deskmain .row .st{font-size:11px;text-align:right;overflow:hidden;text-overflow:ellipsis}
.screen .row .st.plain,.wscreen .row .st.plain,.scr .row .st.plain,.deskmain .row .st.plain{color:var(--ink-muted);font-weight:500}
.screen .row .st.warn,.wscreen .row .st.warn,.scr .row .st.warn,.deskmain .row .st.warn{color:var(--warning);font-weight:500}
.screen .row .st.bad,.wscreen .row .st.bad,.scr .row .st.bad,.deskmain .row .st.bad{color:var(--danger);font-weight:500}
.screen .row .st.good,.wscreen .row .st.good,.scr .row .st.good,.deskmain .row .st.good{color:var(--success);font-weight:500}
.screen .row .el,.wscreen .row .el,.scr .row .el,.deskmain .row .el{font-size:11px;font-weight:500;text-align:right;color:var(--faint);font-variant-numeric:tabular-nums}
.screen .row.late .el,.wscreen .row.late .el,.scr .row.late .el,.deskmain .row.late .el{font-weight:500;color:var(--danger)}
.srow2{position:relative;background:var(--surface);padding:7px 10px;display:grid;gap:2px; border-top:1px solid var(--line-soft)}
.srow2:first-of-type{border-top:0}
.srow2 .l1{display:flex;align-items:baseline;gap:8px;min-width:0}
.srow2 .l1 .t{font-size:12.5px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums;flex:none}
.srow2 .l1 .nm{font-size:13px;font-weight:500;color:var(--ink-strong);overflow:hidden; text-overflow:ellipsis;white-space:nowrap;min-width:0}
.srow2 .l1 .st{margin-left:auto;flex:none;font-size:11.5px}
.srow2 .l2{display:flex;align-items:baseline;gap:8px;min-width:0;padding-left:0}
.srow2 .l2 .de{font-size:11.5px;color:var(--ink-muted);min-width:0;overflow:hidden; text-overflow:ellipsis;white-space:nowrap}
.srow2 .l2 .el{margin-left:auto;flex:none;font-size:11px;font-weight:500;color:var(--faint); font-variant-numeric:tabular-nums}
.srow2.late .l2 .el{font-weight:500;color:var(--danger)}
.srow2 .st.plain{color:var(--ink-muted);font-weight:500}
.srow2 .st.warn{color:var(--warning);font-weight:500}
.srow2 .st.bad{color:var(--danger);font-weight:500}
.srow2 .st.good{color:var(--success);font-weight:500}
.screen .row .act,.wscreen .row .act,.scr .row .act,.deskmain .row .act{border:1px solid var(--line);background:var(--surface);border-radius:6px;padding:3px 0; font-size:11.5px;font-weight:500;color:var(--primary);text-align:center}
.screen .row.enc,.wscreen .row.enc,.scr .row.enc,.deskmain .row.enc{opacity:.82}
.rail{display:flex;flex-direction:column;min-width:0}
.railsec .h{display:flex;align-items:center;gap:7px;margin-bottom:4px}
.railsec .h b{font-size:13px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-strong)}
.railsec .h .all{margin-left:auto;font-size:11px;font-weight:500;color:var(--primary)}
.railsec .h .n{font-size:11px;font-weight:500;color:var(--ink-muted)}
.railsec .h .hlink{display:inline-flex;align-items:center;gap:6px;min-width:0;cursor:pointer}



.railsec .h select,.railsec .h .sel{margin-left:auto;border:1px solid var(--line);border-radius:5px; background:transparent;padding:1px 6px 1px 4px;font:inherit;font-size:10.5px;font-weight:500; color:var(--ink-muted);max-width:104px}
.railsec .mrow{border-top:1px solid var(--line-soft);padding:5px 4px}
.railsec .mrow:first-of-type{border-top:0}
.railsec .mrow .l1{display:flex;align-items:baseline;gap:6px}
.railsec .mrow .who{font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.railsec .mrow.unread .who{font-weight:600;color:var(--ink-strong)}
.railsec .mrow .who{font-weight:500;color:var(--ink-muted)}
.railsec .mrow.unread .who{font-weight:600;color:var(--ink-strong)}
.railsec .mrow .age{margin-left:auto;flex:none;font-size:10.5px;color:var(--faint);font-variant-numeric:tabular-nums}
.railsec .mrow.unread .age{font-weight:500;color:var(--ink-muted)}
.railsec .mrow .snip{font-size:11.5px;color:var(--ink-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.railsec .mrow.unread .snip{color:var(--ink)}
.pdot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--success);display:inline-block}
.pdot.off{background:#d1d5db}
.srow{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line-soft);padding:5px 4px;font-size:12px}
.srow:first-of-type{border-top:0}
.srow .nm{font-weight:500;color:var(--ink-strong);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.srow .rl{margin-left:auto;flex:none;font-size:10.5px;color:var(--faint)}
/* ONE .empty, not two. This was a second declaration of a selector already defined above,
   and being later it won - so every empty state in the portal was a dashed box, including
   the ones sitting inside a card, which is a box inside a box. The dashed container is
   kept for the case it was written for: an empty state with no card around it. */
:not(.card) > .empty{border:1px dashed var(--line);border-radius:8px;padding:14px;font-size:12.5px}
.alert{border-radius:7px;padding:7px 11px;font-size:12px;display:flex;gap:8px;align-items:flex-start}
.alert.err{background:var(--red-soft);color:var(--danger);border:1px solid #efc0bb}
.toast{position:absolute;right:14px;bottom:12px;width:264px;background:var(--surface);border:1px solid var(--line); border-left:3px solid var(--danger);border-radius:8px;box-shadow:0 8px 22px rgba(0,0,0,.13);padding:8px 10px}
.toast b{display:block;font-size:12px;color:var(--ink-strong)}
/* :not(.btn) for the same reason as the row below: this is the toast body text, and a button
   placed in a toast is a span too, so it was taking the muted body colour on a solid fill. */
.toast span:not(.btn){font-size:11.5px;color:var(--ink-muted)}
.toast .btns{display:flex;gap:6px;margin-top:6px}
/* :not(.btn) so a toast that uses a real button keeps it. This rule predates those rows
   carrying real buttons, and without the exclusion it painted a solid button's label in
   the ghost colour - blue text on a blue fill. */
.toast .btns span:not(.btn){font-size:11px;font-weight:500;color:var(--primary);border:1px solid var(--line); border-radius:5px;padding:2px 8px}
.deskmain[data-toasts]{padding-bottom:0}
.deskmain[data-toasts] .deskgrid{padding-bottom:74px}

/* AN EXPLANATION GOES UNDER THE SCREEN IT EXPLAINS. Spencer, 2026-09-01: a paragraph sitting
   ABOVE a frame pushes that frame down, and the pair stops lining up - which is the whole
   reason two screens are put side by side. The short caption stays on top because it names
   the frame; anything after it drops below.
   The column becomes a flex column only so `order` has something to act on; stretch is the
   default, so the frame keeps the width it had. */
.screen .row > div,.pair > div,.wscreen .row > div,.pair > div,.scr .row > div,.pair > div,.deskmain .row > div,.pair > div{display:flex;flex-direction:column}
.row > div > .cap:not(:first-child),.pair > div > .cap:not(:first-child){order:2;margin-top:10px}

/* TWO BUTTONS IN ONE ROW ARE PEERS, so they are the same size and the same
   weight - the way out on the left, the thing that commits on the right. A small
   ghost beside a full-size primary reads as a footnote to the action it is the
   equal of. Ghost Small is for a SECONDARY cancel, never the only one. */
.btn-row.act{display:flex;align-items:center;gap:8px}
.btn-row.act .btn:first-child{margin-right:auto}

/* ============ THE STATUS VOCABULARY ============
   A pill, a badge and a state dot say the same thing in every workspace, so they are
   declared once here and nowhere else. Every colour is a palette token: change --success
   and every "ok" everywhere follows it.

   The greens and ambers below were raw hex copied into 22 decks - near-identical but not
   identical, which is how one workspace's "paid" drifted a shade from the next one's. */
.pill{font-size:11.5px;font-weight:500;border-radius:999px;padding:3px 11px;flex:none;
  border:1px solid transparent}
/* The tint carries the state and so does the ink. .pill.ok used to take near-black ink on a
   green tint while .pill.br took amber ink on an amber tint - the two disagreed about what a
   status pill is. */
.pill.ok{background:var(--green-soft);color:var(--success);border-color:var(--green-line)}
.pill.br{background:var(--amber-soft);color:var(--warning);border-color:var(--amber-line)}
.pill.bad{background:var(--red-soft);color:var(--danger);border-color:var(--red-line)}
.pill.mute{background:var(--sunken);color:var(--ink-muted);border-color:var(--line)}
.pill.prog{background:var(--amber-soft);color:var(--amber-link)}

/* An 8px state dot on a row, and the 7px one that sits before a person's name. */
.srow .dot{width:8px;height:8px;border-radius:50%;flex:none}
.prn .dot,.stnm .dot{width:7px;height:7px;border-radius:50%;background:var(--line);flex:none}
.prn .dot.on,.stnm .dot.on{background:var(--success)}

.hbtn .hbadge.quiet{background:var(--faint)}




/* The bases travel with their modifiers. Left in the decks, `#s-invoices .blbadge` outranks
   `.deck .blbadge.paid` - an ID beats any number of classes - so the base kept setting the
   colour and the hoist above it did nothing. */
.blbadge{flex:none;border:1px solid var(--line);border-radius:6px;padding:2px 9px;
  font-size:11.5px;color:var(--ink-muted)}
.atbadge{border:1px solid var(--line);border-radius:999px;padding:2px 9px;
  font-size:11.5px;color:var(--ink-muted)}

/* Billing states and the automated-task trigger read from the same three tints. */
.blbadge.past-due{color:var(--danger);border-color:var(--red-line);background:var(--red-soft)}
.blbadge.paid{color:var(--success);border-color:var(--green-line)}
/* Void and Sent had no rule of their own, so a cancelled invoice and one
   awaiting payment rendered byte-identical to each other. */
.blbadge.void{color:var(--faint);border-color:var(--line);background:var(--sunken)}
/* Sent is BLUE - live and normal, not settled - and Draft is deliberately quiet, because a
   draft is the one bill on the page nobody owes anything on. Amber here would say the
   opposite; its place in this vocabulary is `part-paid`. */
.blbadge.sent{color:var(--primary);border-color:var(--blue-line);background:var(--blue-soft)}
.blbadge.draft{color:var(--ink-muted);border-color:var(--line)}
.blbadge.part-paid{color:var(--warning);border-color:var(--amber-line);background:var(--amber-soft)}
.atbadge.trig{color:var(--success);border-color:var(--green-line)}
/* `Automatic` is the badge that replaced the priority badge on an automated task, and it is BLUE
   for the same reason `.blbadge.sent` is: blue is this vocabulary's "live and normal". It appears
   only when a trigger is set - a task that is off says `Off` in the badge beside it, and two
   badges saying the same thing are worse than one. */
.atbadge.auto{color:var(--primary);border-color:var(--blue-line);background:var(--blue-soft)}

/* A submission is new until somebody turns it into a patient. */
.fsrow .r .pill{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;
  font-weight:500}
.fsrow .r .pill.new{background:var(--amber-soft);color:var(--warning);
  border:1px solid var(--amber-line)}
.fsrow .r .pill.conv{background:#f4f0fb;color:#6941c6;border:1px solid #ddd2f2}

/* WHICH PRACTICE ASKED, AND WHO. This lived in the overview deck alone, so no other deck could
   carry it by using the classes - they did not exist outside that file. Spencer, 2026-09-01. */
.org-line{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-muted);margin-top:6px}
/* THE PRACTICE MARK. 11px is a floor rather than a preference: it was redeclared in five decks at
   four geometries, and the smallest of them put two capitals in a mark a patient cannot read. It
   stays circular everywhere an organization is represented, matching the application identity
   treatment. `font-style:normal` keeps marks upright inside italic status lines. */
.org-dot{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font-size:10.5px;font-weight:600;font-style:normal;background:var(--blue-fill);
  color:var(--on-fill,#fff);flex:none}
/* .lg is the one deliberate variant - a mark standing alone as a practice avatar rather than
   riding beside its own name. */
.org-dot.lg{width:38px;height:38px;border-radius:50%;font-size:13px}
.org-name{color:var(--ink-strong);font-weight:500}
.org-sep{color:var(--faint)}
.org-gr{background:#3d6b8f} .org-cv{background:#7a5c3e} .org-rf{background:#7a4fa0}

/* A FRAME SETS ITS OWN BASE SIZE, so a deck's PROSE size cannot leak into the screens it is
   describing. Two decks were rendering their frames at the size of their own explanatory text -
   the overview at 18px, my visits at 15px - because both declare `body{font-size}` for the page
   and the frames simply inherited it. Neither was a decision about the screen, and it is
   invisible in the source: it only shows up as a computed value, and only when you compare two
   decks side by side. 61 of 63 sections already rendered at 16. */
.screen,.scr,.wscreen,.deskmain{font-size:16px;line-height:1.55}

/* A CARD INSIDE A CARD IS A BOX IN A BOX. Once a list's rows carry the card treatment,
   the panel holding them is the SECTION rather than a surface - so it gives up its ground
   and its edge and keeps only its place in the flow. Same ruling as the care plan, seen
   from the other side: sections are not cards, and a section wrapping cards is still a
   section. Spencer, 2026-09-02. */
.screen .card:has(> .app-card),
.screen .card:has(> .stk),
.screen .card:has(> .cov),
.screen .card:has(> .list-row),
.screen .card:has(> .team),
.screen .card:has(> .rx),
.screen .card:has(> .appt.up),
.scr .card:has(> .app-card),
.scr .card:has(> .stk),
.scr .card:has(> .cov),
.scr .card:has(> .list-row),
.scr .card:has(> .team),
.scr .card:has(> .rx),
.scr .card:has(> .appt.up),
.wscreen .card:has(> .app-card),
.wscreen .card:has(> .stk),
.wscreen .card:has(> .cov),
.wscreen .card:has(> .list-row),
.wscreen .card:has(> .team),
.wscreen .card:has(> .rx),
.wscreen .card:has(> .appt.up),
.deskmain .card:has(> .app-card),
.deskmain .card:has(> .stk),
.deskmain .card:has(> .cov),
.deskmain .card:has(> .list-row),
.deskmain .card:has(> .team),
.deskmain .card:has(> .rx),
.deskmain .card:has(> .appt.up){background:transparent;border:0;padding:0}

/* ============================================================================
   THE MODAL STAGE. A dialog is drawn OVER the page it opened from, never on a blank frame: on a
   blank frame its close control reads as a control on a page with no back, and the two things a
   modal has to survive - is the list still legible behind it, does the trail underneath still say
   where you are - cannot be seen at all.
   The breadcrumb behind it is deliberately the HOST page's. Spencer, 2026-09-02: "if it's something
   that shows in an overlay like a modal window or slide then there is no breadcrumb to worry about,
   the breadcrumb that shows under the overlay on the page is the page you're on where you opened
   the overlay."
   Lives here because two decks now need it. A deck-local copy would OUTRANK this one rather than
   duplicate it, so the two would part company silently - the same drift the breadcrumbs and the due
   line each turned out to be.
   ============================================================================ */
.stage{position:relative;padding:32px 8px 40px}
.stage .behind{position:absolute;inset:0;overflow:hidden;opacity:.5;filter:saturate(.55);
  pointer-events:none;padding:2px 12px 0}
.stage .scrim{position:absolute;inset:0;background:var(--scrim)}
.stage .over{position:relative;z-index:2}
.ghosttitle{font-size:21px;font-weight:500;letter-spacing:-.02em;color:var(--ink-strong);
  margin:6px 0 8px}
.ghostrow{height:52px;border:1px solid var(--line);border-radius:8px;background:var(--surface);
  margin-bottom:8px}
/* Every dismissible modal closes the same way, from the same corner. */
.m-x{width:30px;height:30px;flex:none;border-radius:5px;background-repeat:no-repeat;
  background-position:center;background-size:18px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235b6b7a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18'/%3E%3Cpath d='m6 6 12 12'/%3E%3C/svg%3E")}

/* ============================================================================
   A NAVIGATION ROW WITH CHILDREN. `Staff` is a parent with no destination of its own - it exists to
   hold Staff Directory and Role Permissions - and the app builds it that way from one array.
   The base lives here because only ONE deck had these rules, so the markup alone would have drawn
   the children as ordinary top-level rows everywhere else. A deck may still vary the indent per
   breakpoint; what it must not do is be the only place the style exists.
   ============================================================================ */
.items .item.kid{padding-left:44px;min-height:38px;font-size:14px;color:var(--ink-muted)}
/* THE CHILD YOU ARE ON. `.item.kid` sets a muted colour and comes after `.sidenav .item.on`
   at equal weight, so a child marked active read exactly like the two beside it. */
.items .item.kid.on{color:var(--ink-strong);font-weight:500}
.items .item .chev2{width:15px;height:15px;margin-left:auto;opacity:.45}






/* THE PENCIL THAT MEANS THE ROW OPENS. Spencer, 2026-09-04. Where clicking a card already opens its
   editor, an Edit button or a blue "Edit" word beside it is a SECOND target for the same act - and
   the loud one, so it reads as the way in when it is only a duplicate of the row. The pencil says
   the row can be edited without competing with it, which is why it is deliberately faint: the
   affordance IS the card. Shared because two decks reached for it independently. */
/* A FILLED star, where the rest of this set is stroked. It is a MARK rather than a picture of
   a thing, and a hollow star at 12px reads as an outline of nothing. */
/* Used in thirteen places and defined in none, so every one painted a solid square: a `.ni`
   with no mask fills its whole box with currentColor. Lucide History, which is the glyph the
   product already renders beside a field that has changed. */


/* THE FIELD LABEL. Spencer, 2026-09-04. Small caps in the ordinary ink, with the VALUE going
   light and muted beside it - which inverts the usual weighting on purpose: all caps at a small
   size already reads as a header, so the label can take the darker ink without competing, and the
   value reads as the thing being reported. Carries only TYPE - a deck still owns where its labels
   sit and how they are spaced. */
.flab{font-size:11.5px;font-weight:500;color:var(--ink);text-transform:uppercase;letter-spacing:.04em}
.editpen{width:14px;height:14px;flex:none;margin-left:auto;color:var(--faint);cursor:pointer}

/* ============================================================================
   THE WORKSPACE SWITCHER. Every staff rail carries it and no deck drew it, which left the whole
   product's mockups with no way for a person to change hats or to see which one they are wearing.
   IT APPEARS ONLY FOR SOMEBODY HOLDING MORE THAN ONE WORKSPACE - a render condition, not a
   permission. One hat means nothing to switch to and no control at all, and that absence is correct.
   The info button opens "What is a workspace?", which the build already has: each role you hold is a
   focused view with its own menu and tools.
   ============================================================================ */
.wsblock{padding:0 14px 14px}
.wslabel{display:flex;align-items:center;gap:5px;margin-bottom:5px;font-size:11px;font-weight:500;
  letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.wsinfo{display:inline-grid;place-items:center;width:13px;height:13px;flex:none;border-radius:50%;
  border:1.2px solid var(--faint);font-size:9px;font-style:normal;line-height:1;text-transform:lowercase;letter-spacing:0}
.wssel{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--line);
  border-radius:2px;background:var(--surface);font-size:13.5px;color:var(--ink-strong)}
.wssel .cv{margin-left:auto;width:6px;height:6px;flex:none;border-right:1.6px solid var(--ink-muted);
  border-bottom:1.6px solid var(--ink-muted);transform:rotate(45deg) translate(-2px,-2px)}

/* ============================================================================
   THE PAGE TITLE. Measured across the patient portal it was FOUR things - `view-title` in six decks,
   `h1` with identical values under a different name, an uppercase `sec-label`, and on Care plans no
   title at all, which jumped from the breadcrumb straight to a small section label and so never
   named the page a patient was standing on.
   A section label is a different job and keeps its own smaller uppercase treatment; this is the name
   of the page, and there is one of it.
   ============================================================================ */
.view-title{margin:0 0 10px!important;font-size:18px!important;font-weight:500!important;
  letter-spacing:-.02em;color:var(--ink-strong)}
/* THE STAFF SIZE. Not a second standard - the same element on a denser surface. Measured:
   at 18px "Staff" renders smaller than the "Staff Directory" card header inside the page,
   so the page name loses to a card in it. 24px/600 is already the treatment in eighteen of
   the twenty-three staff decks; the outliers at 19, 22 and 28 came to it. */
.view-title.lg{font-size:24px!important;font-weight:600!important;margin-bottom:3px!important}
.view-sub{margin:0 0 14px;font-size:13px;color:var(--ink-muted)}

/* ============================================================================
   TWO THINGS EVERY DECK WAS SAYING BY HAND. Golden rule 7 - the same element, the same intent,
   repeated inline in forty-odd decks is a class nobody had written yet.
   `.deskmain` is the positioning context every overlay, toast and popover in a desk frame is placed
   against; it was declared inline 902 times and never once differed.
   The pencil beside "Edit Profile" is 11px in every workspace, and was sized by hand 272 times.
   ============================================================================ */
.deskmain{position:relative}
/* THE PENCIL CANNOT BE HOISTED, and the reason is structural rather than a preference.
   The consolidator scopes a deck to `#s-<deck>` and the shared sheet to `.deck`, so a deck
   rule ALWAYS outranks a shared one - and `#s-navigation .ni{width:19px}` had been sitting
   under the inline style all along. Removing the inline uncovered it and the icon rendered
   nearly double size. Kept inline deliberately: it is the only declaration that can win.
   Rule 7 asks whether something SHOULD be a class; the honest answer here is that it cannot
   be one until the deck rule beneath it goes, which is a larger job than moving a line. */

/* ============================================================================
   THE WORKSPACE NAVIGATION, one frame for all nine.

   Nine decks each carried their own copy. Measured before consolidating: 25 selectors were
   defined in all nine with DIFFERING bodies, and the patient portal was the lone dissenter on
   24 of them - 15px where the others said 14 on a child row, 8px margins against 10, an 8px
   radius against 9, 13px against 12 on the sub-line. Its values were the correction every
   time, so the shared frame is its frame and the other eight adopt it rather than meeting in
   the middle. That is Spencer's ordering: the patient portal is the reference.

   Two decks - hr and marketing - defined `.sidenav .item.on` TWICE in the same file with
   contradicting bodies, so those two painted a selected row differently from the other seven
   and nothing said so. One selector, one answer, here.

   `#2f6fa5` appeared as a literal in seven of them. It is `--primary`, written out. It reads
   as an off-palette blue only from a source deck, where no palette is loaded.
   ============================================================================ */
/* FIVE SELECTORS ARRIVED HERE DEFINED TWICE, because the reference deck defined them twice - the
   same shape hr and marketing had, and the reason this card exists. The LATER definition is what
   was winning by source order, so keeping it changes nothing on screen; the earlier one is deleted
   rather than left as a comment, because a rule that never applies is the thing that made two decks
   disagree without either saying so. .sidenav .item.on is sunken/ink-strong, which is also what the
   built app renders - measured on the mount. */

.sidenav{width:260px;flex:none;border-right:1px solid var(--line);background:var(--surface);padding:8px 0}
.sidenav .me{display:flex;align-items:center;gap:8px;padding:8px 8px 8px;border-bottom:1px solid var(--line-soft)}
.sidenav .me .av{position:relative;width:34px;height:34px;flex:none;border-radius:50%; background:linear-gradient(150deg,#c9d8e6,#8ba7bf);color:var(--on-fill);display:grid;place-items:center; font-size:13px;font-weight:500}
.sidenav .me .ver{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%; background:var(--success);border:2px solid var(--surface)}
.sidenav .me .nm{min-width:0;font-size:13px;font-weight:500;color:var(--ink-strong);overflow:hidden; text-overflow:ellipsis;white-space:nowrap;display:flex;flex-direction:column}
.sidenav .me .sub{font-size:11px;font-weight:500;color:var(--primary);display:flex;align-items:center;gap:4px}
.sidenav .me .coll{margin-left:auto;width:18px;height:18px;flex:none;cursor:pointer; background-color:var(--faint);-webkit-mask-position:center;mask-position:center; -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain; -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17-5-5 5-5'/%3E%3Cpath d='m18 17-5-5 5-5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m11 17-5-5 5-5'/%3E%3Cpath d='m18 17-5-5 5-5'/%3E%3C/svg%3E")}
.sidenav .wsbox{padding:8px 8px;border-bottom:1px solid var(--line-soft);display:grid;gap:4px}
.sidenav .wslabel{font-size:11px;font-weight:500;color:var(--ink-muted);display:flex;align-items:center;gap:4px}
.sidenav .wslabel .info{width:12px;height:12px}
.sidenav .wssel{display:flex;align-items:center;border:1px solid var(--line);border-radius:2px; background:var(--surface);padding:4px 8px;font-size:13px;color:var(--ink-strong);font-weight:600}
.sidenav .wssel .chev{margin-left:auto;width:0;height:0;border-left:4px solid transparent; border-right:4px solid transparent;border-top:5px solid var(--ink-muted)}
.sidenav .items{padding:6px 0}
.sidenav.folded{width:56px}
.sidenav.folded .me{padding:8px 0 8px;justify-content:center;gap:0;flex-wrap:wrap;row-gap:8px}
.sidenav.folded .me .nm{display:none}
.sidenav.folded .me .coll{margin:0}
.sidenav.folded .item{position:relative;justify-content:center;gap:0;margin:0 6px;padding:0;font-size:0}
/* The grant pill sets its own font-size, so the rail's font-size:0 does not reach it. */
.sidenav.folded .item .perm{display:none}
.sidenav.folded .item .badge{position:absolute;top:2px;right:6px;min-width:8px;width:8px; height:8px;padding:0;font-size:0;border-radius:50%}
.sidenav .item{display:flex;align-items:center;color:var(--ink-muted);gap:12px;padding:0 14px;min-height:36px;font-size:15px;border-radius:2px;margin:0 8px;white-space:nowrap}
.sidenav .item.on{background:var(--sunken);color:var(--ink-strong);font-weight:500}
.sidenav .badge{margin-left:auto;min-width:18px;height:18px;border-radius:8px;background:none; color:var(--warning);font-size:13px;font-weight:500;display:grid;place-items:center;padding:0 2px}
.sidenav .item.out{color:var(--danger);margin-top:6px}
/* A ROW ONLY SOME PEOPLE IN THIS WORKSPACE SEE, and the grant that produces it.
   Spencer's receptionist walk, 2026-08-30: a permission variant is a DIFFERENT SCREEN, and
   drawing the widest one as the default teaches whoever builds it that the row is
   unconditional. The pill names the section so the reader knows WHICH grant, because a dim
   row alone reads as disabled - which is a state the product does not have. */
.sidenav .item.gated,.sidenav .gated{opacity:.72}
.sidenav .item.gated .perm{margin-left:7px;font-size:9.5px;font-weight:600;letter-spacing:.04em;
  text-transform:lowercase;color:var(--amber-link);background:#fdf3e3;border-radius:999px;
  padding:1px 6px;vertical-align:middle}
.sidenav .item.kid{padding-left:44px;min-height:32px;font-size:15px;color:var(--ink-muted)}
.sidenav .item.kid2{padding-left:64px;min-height:29px;font-size:13px;color:var(--faint)}
.sidenav.folded .item.kid,.sidenav.folded .item.kid2{display:none}
/* ⛔ THE WORKSPACE CONTROL HAS TO COLLAPSE TOO, and for five decks it did not.
   `.sidenav.folded` handled the profile and the rows and said nothing about `.wsblock`, so a 56px
   rail drew "CURRENT WORKSPACE (i) Admin" at full size inside it: the label wrapped onto two lines
   and over the page heading behind it, the info glyph hung 47px past the rail and the chevron 21px.
   Measured 2026-09-08 on the admin deck - the one frame whose entire purpose is the collapsed state.
   ⭐ The build already answers what this looks like collapsed: a centred icon-only trigger
   carrying ServerCog, no label. This draws that, from the vocabulary's own icon, with no markup
   change - so all five decks get it at once. */
.sidenav.folded .wsblock{padding:0 8px 10px;display:grid;place-items:center}
.sidenav.folded .wsblock .wslabel{display:none}
.sidenav.folded .wsblock .wssel{width:40px;height:32px;padding:0;font-size:0;justify-content:center}
.sidenav.folded .wsblock .wssel .cv,.sidenav.folded .wsblock .wssel .chev{display:none}
.sidenav.folded .wsblock .wssel::before{content:'';width:18px;height:18px;flex:none;
  background-color:var(--ink-muted);-webkit-mask-position:center;mask-position:center;
  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain;
  -webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10.852%2014.772-.383.923%22%2F%3E%3Cpath%20d%3D%22M13.148%2014.772a3%203%200%201%200-2.296-5.544l-.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.148%209.228.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.53%2015.696-.382-.924a3%203%200%201%201-2.296-5.544%22%2F%3E%3Cpath%20d%3D%22m14.772%2010.852.923-.383%22%2F%3E%3Cpath%20d%3D%22m14.772%2013.148.923.383%22%2F%3E%3Cpath%20d%3D%22M4.5%2010H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v4a2%202%200%200%201-2%202h-.5%22%2F%3E%3Cpath%20d%3D%22M4.5%2014H4a2%202%200%200%200-2%202v4a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-4a2%202%200%200%200-2-2h-.5%22%2F%3E%3Cpath%20d%3D%22M6%2018h.01%22%2F%3E%3Cpath%20d%3D%22M6%206h.01%22%2F%3E%3Cpath%20d%3D%22m9.228%2010.852-.923-.383%22%2F%3E%3Cpath%20d%3D%22m9.228%2013.148-.923.383%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10.852%2014.772-.383.923%22%2F%3E%3Cpath%20d%3D%22M13.148%2014.772a3%203%200%201%200-2.296-5.544l-.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.148%209.228.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.53%2015.696-.382-.924a3%203%200%201%201-2.296-5.544%22%2F%3E%3Cpath%20d%3D%22m14.772%2010.852.923-.383%22%2F%3E%3Cpath%20d%3D%22m14.772%2013.148.923.383%22%2F%3E%3Cpath%20d%3D%22M4.5%2010H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v4a2%202%200%200%201-2%202h-.5%22%2F%3E%3Cpath%20d%3D%22M4.5%2014H4a2%202%200%200%200-2%202v4a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-4a2%202%200%200%200-2-2h-.5%22%2F%3E%3Cpath%20d%3D%22M6%2018h.01%22%2F%3E%3Cpath%20d%3D%22M6%206h.01%22%2F%3E%3Cpath%20d%3D%22m9.228%2010.852-.923-.383%22%2F%3E%3Cpath%20d%3D%22m9.228%2013.148-.923.383%22%2F%3E%3C%2Fsvg%3E")}
.sidenav .chev{margin-left:auto;width:0;height:0;border-left:4px solid currentColor; border-top:3.5px solid transparent;border-bottom:3.5px solid transparent;opacity:.5}
.sidenav.v1 .items{padding:6px 0 8px}
.sidenav.v1 .item{min-height:44px;margin:0 8px 2px;padding:0 12px;border-radius:8px;gap:12px}
.sidenav.v1 .item .ni{width:19px;height:19px}
.sidenav.v1 .item.on{background:var(--blue-soft);color:var(--primary);font-weight:500; box-shadow:inset 3px 0 0 var(--primary)}
.sidenav.v1 .item.kid{min-height:38px;padding-left:44px;font-size:15px;color:var(--ink-muted)}
.sidenav.v1 .bandcap{padding:12px 20px 4px;font-size:11px;font-weight:500;letter-spacing:.07em; text-transform:uppercase;color:var(--faint)}
.sidenav.v1 .bandrule{height:1px;background:var(--line-soft);margin:8px 14px 0}
.sidenav.v1 .chev2{width:15px;height:15px;margin-left:auto;opacity:.45}
.sidenav.v2{display:flex;flex-direction:column;height:100%}
.sidenav.v2 .items{flex:1;display:flex;flex-direction:column;padding-bottom:0}
.sidenav.v2 .me{margin:8px;padding:8px 12px;background:var(--sunken);border-radius:8px; border-bottom:0}
.sidenav.v2 .me .av{width:38px;height:38px}
.sidenav.v2 .me .nm{font-size:15px}
.sidenav.v2 .me .sub2{display:block;font-size:13px;font-weight:400;color:var(--faint);margin-top:2px}
.sidenav.v2 .item.out{margin:auto 0 0;border-top:1px solid var(--line-soft);border-radius:0; padding-left:20px;min-height:52px;color:var(--ink-muted)}
.sidenav.s1 .item,.sidenav.s2 .item,.sidenav.s3 .item,.sidenav.s4 .item{margin:0 8px 2px; border-radius:8px;gap:12px;min-height:44px;padding:0 8px}
.sidenav.s1 .chev2,.sidenav.s2 .chev2,.sidenav.s3 .chev2,.sidenav.s4 .chev2{width:15px;height:15px; margin-left:auto;opacity:.45}
.sidenav.s1 .item.kid,.sidenav.s2 .item.kid,.sidenav.s3 .item.kid,.sidenav.s4 .item.kid{padding-left:40px;min-height:39px;font-size:15px;color:var(--ink-muted)}
.sidenav.s1 .tile{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;flex:none}
.sidenav.s1 .tile .ni{width:17px;height:17px}
.sidenav.s1 .item{padding-left:6px}
.sidenav.s1 .item.kid{padding-left:32px;min-height:39px}
.sidenav.s1 .item.on{background:var(--blue-soft);color:var(--primary);font-weight:500}
.sidenav.s1 .tile.t-blue{background:var(--blue-soft);color:var(--primary)}
.sidenav.s1 .tile.t-teal{background:#e0f0ed;color:#2f8579}
.sidenav.s1 .tile.t-amber{background:#fbeedd;color:var(--warning)}
.sidenav.s1 .tile.t-violet{background:#eee9f8;color:#6455a4}
.sidenav.s1 .tile.t-rose{background:#fae8ec;color:#ab4459}
.sidenav.s1 .tile.t-green{background:#e7f2e5;color:#487c41}
.sidenav.s2 .me,.sidenav.s5 .me{background:linear-gradient(135deg,#3480c6,#1f4f7d);border-bottom:0; padding:14px 12px}
.sidenav.s2 .me .av,.sidenav.s5 .me .av{background:rgba(255,255,255,.20);color:var(--on-fill); box-shadow:inset 0 0 0 1px rgba(255,255,255,.38)}
.sidenav.s2 .me .nm,.sidenav.s5 .me .nm{color:var(--on-fill);font-size:15px}
.sidenav.s2 .me .sub,.sidenav.s5 .me .sub{color:rgba(255,255,255,.88)}
.sidenav.s2 .items{padding-top:8px}
.sidenav.s2 .item.on{background:var(--blue-soft);color:var(--primary);font-weight:500}
.sidenav.s2 .item .ni{width:19px;height:19px}
.sidenav.s3{background:var(--paper)}
.sidenav.s3 .me{background:var(--surface)}
.sidenav.s3 .item{margin:0 8px 6px;padding:0 12px;border-radius:8px;min-height:46px; box-sizing:border-box;background:var(--surface);border:1px solid transparent; box-shadow:0 1px 2px rgba(31,26,20,.05)}
.sidenav.s3 .item.kid{margin-left:28px;padding-left:12px;min-height:41px;font-size:15px}
.sidenav.s3 .item.on{color:var(--primary);font-weight:500;border-color:#cadcee; box-shadow:inset 3px 0 0 var(--primary),0 1px 3px rgba(31,26,20,.09)}
.sidenav.s3 .item .ni{width:19px;height:19px}
.sidenav.s4 .me{background:var(--sunken);border-bottom:0;margin:8px;border-radius:8px;padding:8px 12px}
.sidenav.s4 .item{color:var(--ink)}
.sidenav.s4 .item .ni{width:19px;height:19px}
.sidenav.s4 .item.on{background:var(--primary);color:var(--on-fill);font-weight:500;box-shadow:0 1px 4px rgba(44,111,175,.35)}
.sidenav.s4 .item.kid{color:var(--ink-muted)}
.sidenav.s4 .item.out{color:var(--danger)}
.sidenav.s5 .items{padding:8px 0 8px}
.sidenav.s5 .item{margin:0;padding:0 14px;border-radius:0;min-height:46px;gap:12px;color:var(--line)}
.sidenav.s5 .item .ni{width:19px;height:19px}
.sidenav.s5 .item.kid{padding-left:44px;min-height:40px;font-size:15px;color:var(--faint)}
.sidenav.s5 .item.on{background:#45413b;color:var(--sunken);font-weight:500; box-shadow:inset 3px 0 0 var(--primary)}
.sidenav.s5 .item.out{color:#e0a45f}
.sidenav.s5 .badge{background:none;color:var(--warning);min-width:0;height:auto;padding:0;border-radius:0; font-size:13px;font-weight:500;display:block}
.sidenav.s5 .chev2{width:15px;height:15px;margin-left:auto;opacity:.55}
.sidenav.s5{background:#36332f;padding:0;border-right:0;border-bottom:0}

/* ============================================================================
   THE ICON VOCABULARY, one copy for the whole product.

   This block is not new. _standard.css has always been the shared icon library for every
   non-navigation surface - measured in the consolidated admin deck, exactly ONE section defined
   icons of its own and everything else was painted from here. What was written out nine times
   was the NAVIGATION's additions to it, and this folds those in.

   TWO ATTEMPTS FAILED BY REPLACING THIS BLOCK rather than adding to it. Four names live here and
   in no navigation deck - lab, log, shield, star - and they are used across many sections, so
   dropping them left 98 icons unpainted in one workspace alone. An unpainted icon has no mask and
   looks exactly like a row that never had one, which is why nothing complained.

   TWO NAMING SCHEMES SHARE THE NAMESPACE and that is not fixed here: single-word semantic names
   (appts, docs, forms, logout) beside lucide names (bell-ring, layout-dashboard, credit-card).
   Both resolve. Renaming the ones in use, across nine decks, buys consistency at the cost of a
   row rendering blank.

   THE RULE GOING FORWARD: a new icon takes its lucide name. That is where the art comes from, so
   the name can be checked against the library; a semantic alias is a second vocabulary to hold.
   ============================================================================ */
.ni{width:19px;height:19px;flex:none;display:inline-block;background-color:currentColor; -webkit-mask-position:center;mask-position:center;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat; -webkit-mask-size:contain;mask-size:contain}
.ni-overview{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='7' rx='1'/%3E%3Crect x='3' y='14' width='9' height='7' rx='1'/%3E%3Crect x='16' y='14' width='5' height='7' rx='1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='7' rx='1'/%3E%3Crect x='3' y='14' width='9' height='7' rx='1'/%3E%3Crect x='16' y='14' width='5' height='7' rx='1'/%3E%3C/svg%3E")}
.ni-messages{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3Cpath d='M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 10a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 14.286V4a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z'/%3E%3Cpath d='M20 9a2 2 0 0 1 2 2v10.286a.71.71 0 0 1-1.212.502l-2.202-2.202A2 2 0 0 0 17.172 19H10a2 2 0 0 1-2-2v-1'/%3E%3C/svg%3E")}
.ni-forms{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732'/%3E%3Cpath d='m22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5'/%3E%3Crect x='7' y='3' width='15' height='12' rx='2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 1-1.732'/%3E%3Cpath d='m22 5.5-6.419 4.179a2 2 0 0 1-2.162 0L7 5.5'/%3E%3Crect x='7' y='3' width='15' height='12' rx='2'/%3E%3C/svg%3E")}
.ni-appts{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3C/svg%3E")}
.ni-patients{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2'/%3E%3Cpath d='M16 3.128a4 4 0 0 1 0 7.744'/%3E%3Cpath d='M22 21v-2a4 4 0 0 0-3-3.87'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3C/svg%3E")}
.ni-docs{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7h-3a2 2 0 0 1-2-2V2'/%3E%3Cpath d='M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v12a2 2 0 0 1-2 2Z'/%3E%3Cpath d='M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 7h-3a2 2 0 0 1-2-2V2'/%3E%3Cpath d='M9 18a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h7l4 4v12a2 2 0 0 1-2 2Z'/%3E%3Cpath d='M3 7.6v12.8A1.6 1.6 0 0 0 4.6 22h9.8'/%3E%3C/svg%3E")}
.ni-sub{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='5' rx='2'/%3E%3Cline x1='2' x2='22' y1='10' y2='10'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect width='20' height='14' x='2' y='5' rx='2'/%3E%3Cline x1='2' x2='22' y1='10' y2='10'/%3E%3C/svg%3E")}
.ni-teams{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 21a8 8 0 0 0-16 0'/%3E%3Ccircle cx='10' cy='8' r='5'/%3E%3Cpath d='M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3'/%3E%3C/svg%3E")}
.ni-schedules{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3Cpath d='M16 18h.01'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 2v4'/%3E%3Cpath d='M16 2v4'/%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cpath d='M3 10h18'/%3E%3Cpath d='M8 14h.01'/%3E%3Cpath d='M12 14h.01'/%3E%3Cpath d='M16 14h.01'/%3E%3Cpath d='M8 18h.01'/%3E%3Cpath d='M12 18h.01'/%3E%3Cpath d='M16 18h.01'/%3E%3C/svg%3E")}
.ni-org{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z'/%3E%3Cpath d='M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2'/%3E%3Cpath d='M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2'/%3E%3Cpath d='M10 6h4'/%3E%3Cpath d='M10 10h4'/%3E%3Cpath d='M10 14h4'/%3E%3Cpath d='M10 18h4'/%3E%3C/svg%3E")}
.ni-staff{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 10h3'/%3E%3Cpath d='M13 14h3'/%3E%3Cpath d='M8 10h.01'/%3E%3Cpath d='M8 14h.01'/%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 10h3'/%3E%3Cpath d='M13 14h3'/%3E%3Cpath d='M8 10h.01'/%3E%3Cpath d='M8 14h.01'/%3E%3Crect x='3' y='4' width='18' height='16' rx='2'/%3E%3C/svg%3E")}
.ni-campaigns{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 18-5v12L3 14v-3z'/%3E%3Cpath d='M11.6 16.8a3 3 0 1 1-5.8-1.6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m3 11 18-5v12L3 14v-3z'/%3E%3Cpath d='M11.6 16.8a3 3 0 1 1-5.8-1.6'/%3E%3C/svg%3E")}
.ni-logout{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16 17 5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m16 17 5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3C/svg%3E")}
.ni-pencil{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/%3E%3C/svg%3E")}
.ni.hicon{width:13px;height:13px;color:var(--primary)}
.ni-msgwarn-circle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.992%2016.342a2%202%200%200%201%20.094%201.167l-1.065%203.29a1%201%200%200%200%201.236%201.168l3.413-.998a2%202%200%200%201%201.099.092%2010%2010%200%201%200-4.777-4.719%22%2F%3E%3Cpath%20d%3D%22M12%208v4%22%2F%3E%3Cpath%20d%3D%22M12%2016h.01%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.992%2016.342a2%202%200%200%201%20.094%201.167l-1.065%203.29a1%201%200%200%200%201.236%201.168l3.413-.998a2%202%200%200%201%201.099.092%2010%2010%200%201%200-4.777-4.719%22%2F%3E%3Cpath%20d%3D%22M12%208v4%22%2F%3E%3Cpath%20d%3D%22M12%2016h.01%22%2F%3E%3C%2Fsvg%3E")}
.ni-msgwarn-square{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2017a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2021.286V5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M12%2015h.01%22%2F%3E%3Cpath%20d%3D%22M12%207v4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2017a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2021.286V5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M12%2015h.01%22%2F%3E%3Cpath%20d%3D%22M12%207v4%22%2F%3E%3C%2Fsvg%3E")}
.ni-users{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%2F%3E%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%2F%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2021v-2a4%204%200%200%200-4-4H6a4%204%200%200%200-4%204v2%22%2F%3E%3Cpath%20d%3D%22M16%203.128a4%204%200%200%201%200%207.744%22%2F%3E%3Cpath%20d%3D%22M22%2021v-2a4%204%200%200%200-3-3.87%22%2F%3E%3Ccircle%20cx%3D%229%22%20cy%3D%227%22%20r%3D%224%22%2F%3E%3C%2Fsvg%3E")}
.ni-shield{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E")}
.ni-lab{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 2v7.31'/><path d='M14 9.3V1.99'/><path d='M8.5 2h7'/><path d='M14 9.3a6.5 6.5 0 1 1-4 0'/><path d='M5.52 16h12.96'/></svg>");mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M10 2v7.31'/><path d='M14 9.3V1.99'/><path d='M8.5 2h7'/><path d='M14 9.3a6.5 6.5 0 1 1-4 0'/><path d='M5.52 16h12.96'/></svg>")}
.ni-log{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%2F%3E%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%2F%3E%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E")}
.ni-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}
.ni-chevron-down{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E")}
.ni-chevron-right{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%2018%206-6-6-6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%2018%206-6-6-6%22%2F%3E%3C%2Fsvg%3E")}
.ni-history{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3Cpath d='M12 7v5l4 2'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8'/%3E%3Cpath d='M3 3v5h5'/%3E%3Cpath d='M12 7v5l4 2'/%3E%3C/svg%3E")}
.ni-star{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26'/%3E%3C/svg%3E"); mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000'%3E%3Cpolygon points='12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26'/%3E%3C/svg%3E")}
.ni-activity{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2012h-2.48a2%202%200%200%200-1.93%201.46l-2.35%208.36a.25.25%200%200%201-.48%200L9.24%202.18a.25.25%200%200%200-.48%200l-2.35%208.36A2%202%200%200%201%204.49%2012H2%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2012h-2.48a2%202%200%200%200-1.93%201.46l-2.35%208.36a.25.25%200%200%201-.48%200L9.24%202.18a.25.25%200%200%200-.48%200l-2.35%208.36A2%202%200%200%201%204.49%2012H2%22%2F%3E%3C%2Fsvg%3E")}
.ni-bell-ring{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.268%2021a2%202%200%200%200%203.464%200%22%2F%3E%3Cpath%20d%3D%22M22%208c0-2.3-.8-4.3-2-6%22%2F%3E%3Cpath%20d%3D%22M3.262%2015.326A1%201%200%200%200%204%2017h16a1%201%200%200%200%20.74-1.673C19.41%2013.956%2018%2012.499%2018%208A6%206%200%200%200%206%208c0%204.499-1.411%205.956-2.738%207.326%22%2F%3E%3Cpath%20d%3D%22M4%202C2.8%203.7%202%205.7%202%208%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10.268%2021a2%202%200%200%200%203.464%200%22%2F%3E%3Cpath%20d%3D%22M22%208c0-2.3-.8-4.3-2-6%22%2F%3E%3Cpath%20d%3D%22M3.262%2015.326A1%201%200%200%200%204%2017h16a1%201%200%200%200%20.74-1.673C19.41%2013.956%2018%2012.499%2018%208A6%206%200%200%200%206%208c0%204.499-1.411%205.956-2.738%207.326%22%2F%3E%3Cpath%20d%3D%22M4%202C2.8%203.7%202%205.7%202%208%22%2F%3E%3C%2Fsvg%3E")}
.ni-building-2{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2012h4%22%2F%3E%3Cpath%20d%3D%22M10%208h4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M6%2010H4a2%202%200%200%200-2%202v7a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2V9a2%202%200%200%200-2-2h-2%22%2F%3E%3Cpath%20d%3D%22M6%2021V5a2%202%200%200%201%202-2h8a2%202%200%200%201%202%202v16%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%2012h4%22%2F%3E%3Cpath%20d%3D%22M10%208h4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M6%2010H4a2%202%200%200%200-2%202v7a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2V9a2%202%200%200%200-2-2h-2%22%2F%3E%3Cpath%20d%3D%22M6%2021V5a2%202%200%200%201%202-2h8a2%202%200%200%201%202%202v16%22%2F%3E%3C%2Fsvg%3E")}
.ni-calendar{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3C%2Fsvg%3E")}
.ni-calendar-check-2{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Cpath%20d%3D%22M21%2014V6a2%202%200%200%200-2-2H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h8%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3Cpath%20d%3D%22m16%2020%202%202%204-4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Cpath%20d%3D%22M21%2014V6a2%202%200%200%200-2-2H5a2%202%200%200%200-2%202v14a2%202%200%200%200%202%202h8%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3Cpath%20d%3D%22m16%2020%202%202%204-4%22%2F%3E%3C%2Fsvg%3E")}
.ni-calendar-days{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3Cpath%20d%3D%22M8%2014h.01%22%2F%3E%3Cpath%20d%3D%22M12%2014h.01%22%2F%3E%3Cpath%20d%3D%22M16%2014h.01%22%2F%3E%3Cpath%20d%3D%22M8%2018h.01%22%2F%3E%3Cpath%20d%3D%22M12%2018h.01%22%2F%3E%3Cpath%20d%3D%22M16%2018h.01%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%202v4%22%2F%3E%3Cpath%20d%3D%22M16%202v4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%222%22%2F%3E%3Cpath%20d%3D%22M3%2010h18%22%2F%3E%3Cpath%20d%3D%22M8%2014h.01%22%2F%3E%3Cpath%20d%3D%22M12%2014h.01%22%2F%3E%3Cpath%20d%3D%22M16%2014h.01%22%2F%3E%3Cpath%20d%3D%22M8%2018h.01%22%2F%3E%3Cpath%20d%3D%22M12%2018h.01%22%2F%3E%3Cpath%20d%3D%22M16%2018h.01%22%2F%3E%3C%2Fsvg%3E")}
.ni-chevrons-left{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m11%2017-5-5%205-5%22%2F%3E%3Cpath%20d%3D%22m18%2017-5-5%205-5%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m11%2017-5-5%205-5%22%2F%3E%3Cpath%20d%3D%22m18%2017-5-5%205-5%22%2F%3E%3C%2Fsvg%3E")}
.ni-circle-arrow-out-down-left{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012a10%2010%200%201%201%2010%2010%22%2F%3E%3Cpath%20d%3D%22m2%2022%2010-10%22%2F%3E%3Cpath%20d%3D%22M8%2022H2v-6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2012a10%2010%200%201%201%2010%2010%22%2F%3E%3Cpath%20d%3D%22m2%2022%2010-10%22%2F%3E%3Cpath%20d%3D%22M8%2022H2v-6%22%2F%3E%3C%2Fsvg%3E")}
.ni-clipboard-plus{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%228%22%20y%3D%222%22%20width%3D%228%22%20height%3D%224%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M9%2014h6%22%2F%3E%3Cpath%20d%3D%22M12%2017v-6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%228%22%20y%3D%222%22%20width%3D%228%22%20height%3D%224%22%20rx%3D%221%22%20ry%3D%221%22%2F%3E%3Cpath%20d%3D%22M16%204h2a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H6a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M9%2014h6%22%2F%3E%3Cpath%20d%3D%22M12%2017v-6%22%2F%3E%3C%2Fsvg%3E")}
.ni-credit-card{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%222%22%20x2%3D%2222%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%225%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%2F%3E%3Cline%20x1%3D%222%22%20x2%3D%2222%22%20y1%3D%2210%22%20y2%3D%2210%22%2F%3E%3C%2Fsvg%3E")}
.ni-download{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2015V3%22%2F%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22%2F%3E%3Cpath%20d%3D%22m7%2010%205%205%205-5%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2015V3%22%2F%3E%3Cpath%20d%3D%22M21%2015v4a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2v-4%22%2F%3E%3Cpath%20d%3D%22m7%2010%205%205%205-5%22%2F%3E%3C%2Fsvg%3E")}
.ni-video{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m16%2013%205.223%203.482a.5.5%200%200%200%20.777-.416V7.87a.5.5%200%200%200-.752-.432L16%2010.5%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2214%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m16%2013%205.223%203.482a.5.5%200%200%200%20.777-.416V7.87a.5.5%200%200%200-.752-.432L16%2010.5%22%2F%3E%3Crect%20x%3D%222%22%20y%3D%226%22%20width%3D%2214%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E")}
.ni-eye{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.062%2012.348a1%201%200%200%201%200-.696%2010.75%2010.75%200%200%201%2019.876%200%201%201%200%200%201%200%20.696%2010.75%2010.75%200%200%201-19.876%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2.062%2012.348a1%201%200%200%201%200-.696%2010.75%2010.75%200%200%201%2019.876%200%201%201%200%200%201%200%20.696%2010.75%2010.75%200%200%201-19.876%200%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E")}
.ni-file-text{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%2F%3E%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2022a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h8a2.4%202.4%200%200%201%201.704.706l3.588%203.588A2.4%202.4%200%200%201%2020%208v12a2%202%200%200%201-2%202z%22%2F%3E%3Cpath%20d%3D%22M14%202v5a1%201%200%200%200%201%201h5%22%2F%3E%3Cpath%20d%3D%22M10%209H8%22%2F%3E%3Cpath%20d%3D%22M16%2013H8%22%2F%3E%3Cpath%20d%3D%22M16%2017H8%22%2F%3E%3C%2Fsvg%3E")}
.ni-files{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%202h-4a2%202%200%200%200-2%202v11a2%202%200%200%200%202%202h8a2%202%200%200%200%202-2V8%22%2F%3E%3Cpath%20d%3D%22M16.706%202.706A2.4%202.4%200%200%200%2015%202v5a1%201%200%200%200%201%201h5a2.4%202.4%200%200%200-.706-1.706z%22%2F%3E%3Cpath%20d%3D%22M5%207a2%202%200%200%200-2%202v11a2%202%200%200%200%202%202h8a2%202%200%200%200%201.732-1%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M15%202h-4a2%202%200%200%200-2%202v11a2%202%200%200%200%202%202h8a2%202%200%200%200%202-2V8%22%2F%3E%3Cpath%20d%3D%22M16.706%202.706A2.4%202.4%200%200%200%2015%202v5a1%201%200%200%200%201%201h5a2.4%202.4%200%200%200-.706-1.706z%22%2F%3E%3Cpath%20d%3D%22M5%207a2%202%200%200%200-2%202v11a2%202%200%200%200%202%202h8a2%202%200%200%200%201.732-1%22%2F%3E%3C%2Fsvg%3E")}
.ni-globe{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M12%202a14.5%2014.5%200%200%200%200%2020%2014.5%2014.5%200%200%200%200-20%22%2F%3E%3Cpath%20d%3D%22M2%2012h20%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%2F%3E%3Cpath%20d%3D%22M12%202a14.5%2014.5%200%200%200%200%2020%2014.5%2014.5%200%200%200%200-20%22%2F%3E%3Cpath%20d%3D%22M2%2012h20%22%2F%3E%3C%2Fsvg%3E")}
.ni-phone{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384'/%3E%3C/svg%3E")}
.ni-map-pin{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E")}
.ni-goal{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2013V2l8%204-8%204%22%2F%3E%3Cpath%20d%3D%22M20.561%2010.222a9%209%200%201%201-12.55-5.29%22%2F%3E%3Cpath%20d%3D%22M8.002%209.997a5%205%200%201%200%208.9%202.02%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2013V2l8%204-8%204%22%2F%3E%3Cpath%20d%3D%22M20.561%2010.222a9%209%200%201%201-12.55-5.29%22%2F%3E%3Cpath%20d%3D%22M8.002%209.997a5%205%200%201%200%208.9%202.02%22%2F%3E%3C%2Fsvg%3E")}
.ni-hospital{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%207v4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M14%209h-4%22%2F%3E%3Cpath%20d%3D%22M18%2011h2a2%202%200%200%201%202%202v6a2%202%200%200%201-2%202H4a2%202%200%200%201-2-2v-9a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M18%2021V5a2%202%200%200%200-2-2H8a2%202%200%200%200-2%202v16%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%207v4%22%2F%3E%3Cpath%20d%3D%22M14%2021v-3a2%202%200%200%200-4%200v3%22%2F%3E%3Cpath%20d%3D%22M14%209h-4%22%2F%3E%3Cpath%20d%3D%22M18%2011h2a2%202%200%200%201%202%202v6a2%202%200%200%201-2%202H4a2%202%200%200%201-2-2v-9a2%202%200%200%201%202-2h2%22%2F%3E%3Cpath%20d%3D%22M18%2021V5a2%202%200%200%200-2-2H8a2%202%200%200%200-2%202v16%22%2F%3E%3C%2Fsvg%3E")}
.ni-house-plus{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12.35%2021H5a2%202%200%200%201-2-2v-9a2%202%200%200%201%20.71-1.53l7-6a2%202%200%200%201%202.58%200l7%206A2%202%200%200%201%2021%2010v2.35%22%2F%3E%3Cpath%20d%3D%22M14.8%2012.4A1%201%200%200%200%2014%2012h-4a1%201%200%200%200-1%201v8%22%2F%3E%3Cpath%20d%3D%22M15%2018h6%22%2F%3E%3Cpath%20d%3D%22M18%2015v6%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12.35%2021H5a2%202%200%200%201-2-2v-9a2%202%200%200%201%20.71-1.53l7-6a2%202%200%200%201%202.58%200l7%206A2%202%200%200%201%2021%2010v2.35%22%2F%3E%3Cpath%20d%3D%22M14.8%2012.4A1%201%200%200%200%2014%2012h-4a1%201%200%200%200-1%201v8%22%2F%3E%3Cpath%20d%3D%22M15%2018h6%22%2F%3E%3Cpath%20d%3D%22M18%2015v6%22%2F%3E%3C%2Fsvg%3E")}
.ni-id-card-lanyard{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.5%208h-3%22%2F%3E%3Cpath%20d%3D%22m15%202-1%202h3a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H7a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h3%22%2F%3E%3Cpath%20d%3D%22M16.899%2022A5%205%200%200%200%207.1%2022%22%2F%3E%3Cpath%20d%3D%22m9%202%203%206%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2215%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.5%208h-3%22%2F%3E%3Cpath%20d%3D%22m15%202-1%202h3a2%202%200%200%201%202%202v14a2%202%200%200%201-2%202H7a2%202%200%200%201-2-2V6a2%202%200%200%201%202-2h3%22%2F%3E%3Cpath%20d%3D%22M16.899%2022A5%205%200%200%200%207.1%2022%22%2F%3E%3Cpath%20d%3D%22m9%202%203%206%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2215%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E")}
.ni-layout-dashboard{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%229%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%2212%22%20width%3D%227%22%20height%3D%229%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2216%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%227%22%20height%3D%229%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%223%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2214%22%20y%3D%2212%22%20width%3D%227%22%20height%3D%229%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2216%22%20width%3D%227%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.ni-layout-template{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%229%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2216%22%20y%3D%2214%22%20width%3D%225%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%2214%22%20width%3D%229%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3Crect%20x%3D%2216%22%20y%3D%2214%22%20width%3D%225%22%20height%3D%227%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.ni-list-todo{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13%205h8%22%2F%3E%3Cpath%20d%3D%22M13%2012h8%22%2F%3E%3Cpath%20d%3D%22M13%2019h8%22%2F%3E%3Cpath%20d%3D%22m3%2017%202%202%204-4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%226%22%20height%3D%226%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13%205h8%22%2F%3E%3Cpath%20d%3D%22M13%2012h8%22%2F%3E%3Cpath%20d%3D%22M13%2019h8%22%2F%3E%3Cpath%20d%3D%22m3%2017%202%202%204-4%22%2F%3E%3Crect%20x%3D%223%22%20y%3D%224%22%20width%3D%226%22%20height%3D%226%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.ni-log-out{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m16%2017%205-5-5-5%22%2F%3E%3Cpath%20d%3D%22M21%2012H9%22%2F%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m16%2017%205-5-5-5%22%2F%3E%3Cpath%20d%3D%22M21%2012H9%22%2F%3E%3Cpath%20d%3D%22M9%2021H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h4%22%2F%3E%3C%2Fsvg%3E")}
.ni-mails{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2019a2%202%200%200%201-2%202H4a2%202%200%200%201-2-2v-8a2%202%200%200%201%201-1.732%22%2F%3E%3Cpath%20d%3D%22m22%205.5-6.419%204.179a2%202%200%200%201-2.162%200L7%205.5%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%223%22%20width%3D%2215%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M17%2019a2%202%200%200%201-2%202H4a2%202%200%200%201-2-2v-8a2%202%200%200%201%201-1.732%22%2F%3E%3Cpath%20d%3D%22m22%205.5-6.419%204.179a2%202%200%200%201-2.162%200L7%205.5%22%2F%3E%3Crect%20x%3D%227%22%20y%3D%223%22%20width%3D%2215%22%20height%3D%2212%22%20rx%3D%222%22%2F%3E%3C%2Fsvg%3E")}
.ni-megaphone{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M11%206a13%2013%200%200%200%208.4-2.8A1%201%200%200%201%2021%204v12a1%201%200%200%201-1.6.8A13%2013%200%200%200%2011%2014H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2z%22%2F%3E%3Cpath%20d%3D%22M6%2014a12%2012%200%200%200%202.4%207.2%202%202%200%200%200%203.2-2.4A8%208%200%200%201%2010%2014%22%2F%3E%3Cpath%20d%3D%22M8%206v8%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M11%206a13%2013%200%200%200%208.4-2.8A1%201%200%200%201%2021%204v12a1%201%200%200%201-1.6.8A13%2013%200%200%200%2011%2014H5a2%202%200%200%201-2-2V8a2%202%200%200%201%202-2z%22%2F%3E%3Cpath%20d%3D%22M6%2014a12%2012%200%200%200%202.4%207.2%202%202%200%200%200%203.2-2.4A8%208%200%200%201%2010%2014%22%2F%3E%3Cpath%20d%3D%22M8%206v8%22%2F%3E%3C%2Fsvg%3E")}
.ni-message-square-text{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2017a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2021.286V5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M7%2011h10%22%2F%3E%3Cpath%20d%3D%22M7%2015h6%22%2F%3E%3Cpath%20d%3D%22M7%207h8%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M22%2017a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2021.286V5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M7%2011h10%22%2F%3E%3Cpath%20d%3D%22M7%2015h6%22%2F%3E%3Cpath%20d%3D%22M7%207h8%22%2F%3E%3C%2Fsvg%3E")}
.ni-messages-square{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2010a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2014.286V4a2%202%200%200%201%202-2h10a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M20%209a2%202%200%200%201%202%202v10.286a.71.71%200%200%201-1.212.502l-2.202-2.202A2%202%200%200%200%2017.172%2019H10a2%202%200%200%201-2-2v-1%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M16%2010a2%202%200%200%201-2%202H6.828a2%202%200%200%200-1.414.586l-2.202%202.202A.71.71%200%200%201%202%2014.286V4a2%202%200%200%201%202-2h10a2%202%200%200%201%202%202z%22%2F%3E%3Cpath%20d%3D%22M20%209a2%202%200%200%201%202%202v10.286a.71.71%200%200%201-1.212.502l-2.202-2.202A2%202%200%200%200%2017.172%2019H10a2%202%200%200%201-2-2v-1%22%2F%3E%3C%2Fsvg%3E")}
.ni-palette{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022a1%201%200%200%201%200-20%2010%209%200%200%201%2010%209%205%205%200%200%201-5%205h-2.25a1.75%201.75%200%200%200-1.4%202.8l.3.4a1.75%201.75%200%200%201-1.4%202.8z%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%226.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%2217.5%22%20cy%3D%2210.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%226.5%22%20cy%3D%2212.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%227.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022a1%201%200%200%201%200-20%2010%209%200%200%201%2010%209%205%205%200%200%201-5%205h-2.25a1.75%201.75%200%200%200-1.4%202.8l.3.4a1.75%201.75%200%200%201-1.4%202.8z%22%2F%3E%3Ccircle%20cx%3D%2213.5%22%20cy%3D%226.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%2217.5%22%20cy%3D%2210.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%226.5%22%20cy%3D%2212.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3Ccircle%20cx%3D%228.5%22%20cy%3D%227.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E")}
.ni-pill-bottle{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2011h-4a1%201%200%200%200-1%201v5a1%201%200%200%200%201%201h4%22%2F%3E%3Cpath%20d%3D%22M6%207v13a2%202%200%200%200%202%202h8a2%202%200%200%200%202-2V7%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%222%22%20width%3D%2216%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2011h-4a1%201%200%200%200-1%201v5a1%201%200%200%200%201%201h4%22%2F%3E%3Cpath%20d%3D%22M6%207v13a2%202%200%200%200%202%202h8a2%202%200%200%200%202-2V7%22%2F%3E%3Crect%20x%3D%224%22%20y%3D%222%22%20width%3D%2216%22%20height%3D%225%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.ni-printer{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2018H4a2%202%200%200%201-2-2v-5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v5a2%202%200%200%201-2%202h-2%22%2F%3E%3Cpath%20d%3D%22M6%209V3a1%201%200%200%201%201-1h10a1%201%200%200%201%201%201v6%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%2214%22%20width%3D%2212%22%20height%3D%228%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2018H4a2%202%200%200%201-2-2v-5a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v5a2%202%200%200%201-2%202h-2%22%2F%3E%3Cpath%20d%3D%22M6%209V3a1%201%200%200%201%201-1h10a1%201%200%200%201%201%201v6%22%2F%3E%3Crect%20x%3D%226%22%20y%3D%2214%22%20width%3D%2212%22%20height%3D%228%22%20rx%3D%221%22%2F%3E%3C%2Fsvg%3E")}
.ni-receipt{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%202v20l2-1%202%201%202-1%202%201%202-1%202%201%202-1%202%201V2l-2%201-2-1-2%201-2-1-2%201-2-1-2%201Z%22%2F%3E%3Cpath%20d%3D%22M16%208h-6a2%202%200%201%200%200%204h4a2%202%200%201%201%200%204H8%22%2F%3E%3Cpath%20d%3D%22M12%2017.5v-11%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%202v20l2-1%202%201%202-1%202%201%202-1%202%201%202-1%202%201V2l-2%201-2-1-2%201-2-1-2%201-2-1-2%201Z%22%2F%3E%3Cpath%20d%3D%22M16%208h-6a2%202%200%201%200%200%204h4a2%202%200%201%201%200%204H8%22%2F%3E%3Cpath%20d%3D%22M12%2017.5v-11%22%2F%3E%3C%2Fsvg%3E")}
.ni-server-cog{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10.852%2014.772-.383.923%22%2F%3E%3Cpath%20d%3D%22M13.148%2014.772a3%203%200%201%200-2.296-5.544l-.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.148%209.228.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.53%2015.696-.382-.924a3%203%200%201%201-2.296-5.544%22%2F%3E%3Cpath%20d%3D%22m14.772%2010.852.923-.383%22%2F%3E%3Cpath%20d%3D%22m14.772%2013.148.923.383%22%2F%3E%3Cpath%20d%3D%22M4.5%2010H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v4a2%202%200%200%201-2%202h-.5%22%2F%3E%3Cpath%20d%3D%22M4.5%2014H4a2%202%200%200%200-2%202v4a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-4a2%202%200%200%200-2-2h-.5%22%2F%3E%3Cpath%20d%3D%22M6%2018h.01%22%2F%3E%3Cpath%20d%3D%22M6%206h.01%22%2F%3E%3Cpath%20d%3D%22m9.228%2010.852-.923-.383%22%2F%3E%3Cpath%20d%3D%22m9.228%2013.148-.923.383%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10.852%2014.772-.383.923%22%2F%3E%3Cpath%20d%3D%22M13.148%2014.772a3%203%200%201%200-2.296-5.544l-.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.148%209.228.383-.923%22%2F%3E%3Cpath%20d%3D%22m13.53%2015.696-.382-.924a3%203%200%201%201-2.296-5.544%22%2F%3E%3Cpath%20d%3D%22m14.772%2010.852.923-.383%22%2F%3E%3Cpath%20d%3D%22m14.772%2013.148.923.383%22%2F%3E%3Cpath%20d%3D%22M4.5%2010H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h16a2%202%200%200%201%202%202v4a2%202%200%200%201-2%202h-.5%22%2F%3E%3Cpath%20d%3D%22M4.5%2014H4a2%202%200%200%200-2%202v4a2%202%200%200%200%202%202h16a2%202%200%200%200%202-2v-4a2%202%200%200%200-2-2h-.5%22%2F%3E%3Cpath%20d%3D%22M6%2018h.01%22%2F%3E%3Cpath%20d%3D%22M6%206h.01%22%2F%3E%3Cpath%20d%3D%22m9.228%2010.852-.923-.383%22%2F%3E%3Cpath%20d%3D%22m9.228%2013.148-.923.383%22%2F%3E%3C%2Fsvg%3E")}
.ni-settings{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9.671%204.136a2.34%202.34%200%200%201%204.659%200%202.34%202.34%200%200%200%203.319%201.915%202.34%202.34%200%200%201%202.33%204.033%202.34%202.34%200%200%200%200%203.831%202.34%202.34%200%200%201-2.33%204.033%202.34%202.34%200%200%200-3.319%201.915%202.34%202.34%200%200%201-4.659%200%202.34%202.34%200%200%200-3.32-1.915%202.34%202.34%200%200%201-2.33-4.033%202.34%202.34%200%200%200%200-3.831A2.34%202.34%200%200%201%206.35%206.051a2.34%202.34%200%200%200%203.319-1.915%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9.671%204.136a2.34%202.34%200%200%201%204.659%200%202.34%202.34%200%200%200%203.319%201.915%202.34%202.34%200%200%201%202.33%204.033%202.34%202.34%200%200%200%200%203.831%202.34%202.34%200%200%201-2.33%204.033%202.34%202.34%200%200%200-3.319%201.915%202.34%202.34%200%200%201-4.659%200%202.34%202.34%200%200%200-3.32-1.915%202.34%202.34%200%200%201-2.33-4.033%202.34%202.34%200%200%200%200-3.831A2.34%202.34%200%200%201%206.35%206.051a2.34%202.34%200%200%200%203.319-1.915%22%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3C%2Fsvg%3E")}
.ni-share-2{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%225%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Cline%20x1%3D%228.59%22%20x2%3D%2215.42%22%20y1%3D%2213.51%22%20y2%3D%2217.49%22%2F%3E%3Cline%20x1%3D%2215.41%22%20x2%3D%228.59%22%20y1%3D%226.51%22%20y2%3D%2210.49%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%225%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%226%22%20cy%3D%2212%22%20r%3D%223%22%2F%3E%3Ccircle%20cx%3D%2218%22%20cy%3D%2219%22%20r%3D%223%22%2F%3E%3Cline%20x1%3D%228.59%22%20x2%3D%2215.42%22%20y1%3D%2213.51%22%20y2%3D%2217.49%22%2F%3E%3Cline%20x1%3D%2215.41%22%20x2%3D%228.59%22%20y1%3D%226.51%22%20y2%3D%2210.49%22%2F%3E%3C%2Fsvg%3E")}
.ni-shield-check{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%2013c0%205-3.5%207.5-7.66%208.95a1%201%200%200%201-.67-.01C7.5%2020.5%204%2018%204%2013V6a1%201%200%200%201%201-1c2%200%204.5-1.2%206.24-2.72a1.17%201.17%200%200%201%201.52%200C14.51%203.81%2017%205%2019%205a1%201%200%200%201%201%201z%22%2F%3E%3Cpath%20d%3D%22m9%2012%202%202%204-4%22%2F%3E%3C%2Fsvg%3E")}
.ni-tags{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.172%202a2%202%200%200%201%201.414.586l6.71%206.71a2.4%202.4%200%200%201%200%203.408l-4.592%204.592a2.4%202.4%200%200%201-3.408%200l-6.71-6.71A2%202%200%200%201%206%209.172V3a1%201%200%200%201%201-1z%22%2F%3E%3Cpath%20d%3D%22M2%207v6.172a2%202%200%200%200%20.586%201.414l6.71%206.71a2.4%202.4%200%200%200%203.191.193%22%2F%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%226.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13.172%202a2%202%200%200%201%201.414.586l6.71%206.71a2.4%202.4%200%200%201%200%203.408l-4.592%204.592a2.4%202.4%200%200%201-3.408%200l-6.71-6.71A2%202%200%200%201%206%209.172V3a1%201%200%200%201%201-1z%22%2F%3E%3Cpath%20d%3D%22M2%207v6.172a2%202%200%200%200%20.586%201.414l6.71%206.71a2.4%202.4%200%200%200%203.191.193%22%2F%3E%3Ccircle%20cx%3D%2210.5%22%20cy%3D%226.5%22%20r%3D%22.5%22%20fill%3D%22currentColor%22%2F%3E%3C%2Fsvg%3E")}
.ni-triangle-alert{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m21.73%2018-8-14a2%202%200%200%200-3.48%200l-8%2014A2%202%200%200%200%204%2021h16a2%202%200%200%200%201.73-3%22%2F%3E%3Cpath%20d%3D%22M12%209v4%22%2F%3E%3Cpath%20d%3D%22M12%2017h.01%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m21.73%2018-8-14a2%202%200%200%200-3.48%200l-8%2014A2%202%200%200%200%204%2021h16a2%202%200%200%200%201.73-3%22%2F%3E%3Cpath%20d%3D%22M12%209v4%22%2F%3E%3Cpath%20d%3D%22M12%2017h.01%22%2F%3E%3C%2Fsvg%3E")}
.ni-user-round{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M20%2021a8%208%200%200%200-16%200%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%228%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M20%2021a8%208%200%200%200-16%200%22%2F%3E%3C%2Fsvg%3E")}
.ni-users-round{-webkit-mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2021a8%208%200%200%200-16%200%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%228%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M22%2020c0-3.37-2-6.5-4-8a5%205%200%200%200-.45-8.3%22%2F%3E%3C%2Fsvg%3E");mask-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M18%2021a8%208%200%200%200-16%200%22%2F%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%228%22%20r%3D%225%22%2F%3E%3Cpath%20d%3D%22M22%2020c0-3.37-2-6.5-4-8a5%205%200%200%200-.45-8.3%22%2F%3E%3C%2Fsvg%3E")}

/* ============================================================================
   THE OVERLAY TITLE. 20px, weight 600, sage, positive tracking.

   Spencer, 2026-09-09: the large headings at the top of overlays are 600, one of the
   only things that carries a weight that heavy - then "reduce to 20px". 600 is a
   deliberate exception to the 400 cap, allowed because an overlay title is the only
   text on screen with nothing competing with it.

   The SIZE is load-bearing for the COLOUR: sage is ~3:1, legal on large text and not
   on normal text, so shrinking this rule breaks its own contrast. It is `--sage` and
   never `--sage-deep`: the deep one is for a surface carrying white on top of it, and
   using it here darkens the title that was settled.
   ============================================================================ */
.sheet .sh .st > b, .dlg .dh > b, .ahr-overlay-title{
  font-size:20px; font-weight:600; line-height:1.3; letter-spacing:.01em; color:var(--sage)}

/* Shared signed-in header controls: Labs and Imaging use one definition. */
.sh-tools{display:flex;align-items:center;gap:14px;margin-left:auto;flex:none}.sh-tools button,.sh-tools a{border:0;background:none;display:flex;align-items:center;padding:5px;color:var(--primary);text-decoration:none;cursor:pointer}.sh-tools .sh-assistant{color:var(--warning)}.sh-profile{gap:8px!important;font:inherit;color:var(--ink)!important}.sh-profile img{width:30px;height:30px;border-radius:50%;object-fit:cover;flex:none}.sh-profile span{font-size:12px}.sh-panel{position:absolute;right:12px;top:58px;width:min(360px,calc(100% - 24px));max-height:calc(100% - 74px);overflow:auto;padding:18px;background:var(--surface);color:var(--ink);box-shadow:var(--panel-lift);z-index:20;font:13px/1.5 Manrope,sans-serif}.sh-panel h3{font-size:17px;margin:0 30px 14px 0}.sh-panel button{cursor:pointer}.sh-close{position:absolute;right:12px;top:12px;background:none;border:0;color:var(--ink);font-size:20px}.sh-profile-actions{display:flex;gap:8px;margin-top:12px}.phone .lx-top{height:auto;min-height:62px;flex-wrap:wrap;padding:8px 12px}.phone .sh-tools{gap:5px}.phone .sh-profile span{max-width:76px;line-height:1.2}.w-ph .sh-tools{gap:4px}.w-ph .sh-profile span{max-width:76px;font-size:11px}.chrome .sh-tools{order:90}.lx-top .lx-context{display:none}
.sh-tools .sh-nav{display:none}.w-ph .sh-tools .sh-nav,.w-tab .sh-tools .sh-nav{display:flex}.sidenav.sh-visible{display:block!important;position:absolute;top:54px;bottom:0;left:0;z-index:12;background:var(--surface);width:260px}

/* Header assistant uses the same mark as the shared breadcrumb assistant. */
.sh-tools .sh-assistant svg{visibility:hidden}
.sh-avatar{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--blue-soft);color:var(--primary);font-size:11.5px}

/* Diagnostic decks retain the established shell at each illustrated device width. */
.lx-board .chrome>.burger,.board:has(.mm-shell) .chrome>.burger{display:none}
.w-ph .chrome>.burger,.w-tab .chrome>.burger{display:block!important;margin-left:auto}
.w-ph .mm-shell>.sidenav,.w-tab .mm-shell>.sidenav{display:none}
.crumbrow button.assist{border:0;padding:0;cursor:pointer}
.mm-panel>.mm-title{margin:0;padding:14px 16px 0}
.screen .sidenav a.item{text-decoration:none}
