:root{
  /* ---- brand ---------------------------------------------------------
   * R6 · unchanged hues. The complaint was not the colours, it was that
   * everything on the page competed at the same weight. Colour is now
   * RATIONED — status, actions, and the one thing you should look at —
   * and the work is done by space and type instead. */
  --navy:#0D4390; --navy-d:#0A3573; --navy-l:#E9F0FB; --navy-xl:#F3F7FD;
  /* G1d · no teal on any surface (G1b's rule; the owner, 7 Oct 2026: "no need for that green outlined box"): the token keeps its
   * name for the older CSS that reads it. CD1a · NO PURPLE either (the owner, 7 Oct 2026: "get rid of the purple color and
   * replace it with something matching more the platform color pallet. like light blue"): the family is the platform's own
   * blue now, by reference, so it follows the action blue in both themes (and Rescue Blue inside the EMS scope). */
  --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft);
  /* G1d · ONE STACKING ORDER for every surface: the page, its sticky bars, tips, the scrim, the drawer, a question ("Are you
   * sure?"), a toast. Every new layer takes one of these, never a number of its own (core/glass.php glass_drawer_css()). */
  --z-page:0; --z-bar:40; --z-tip:60; --z-scrim:80; --z-drawer:90; --z-ask:95; --z-toast:300;
  /* the same names the portals used, so their CSS reads unchanged */
  --nav:var(--navy); --nav-d:var(--navy-d); --nav-l:var(--navy-l); --card:var(--surface); --mut:var(--muted);
  /* ---- surfaces ------------------------------------------------------
   * A warmer page ground and a pure-white card give the card its edge
   * without a hard grey outline round every one of them, which is what
   * made a long page read as a wall of boxes. */
  --bg:#F5F6F9; --surface:#FFFFFF; --surface-2:#F7F8FB; --surface-3:#EFF1F6;
  --paper:#FFFFFF;   /* R45 · a document shown as it will look (a sent email): white in BOTH themes, on purpose */
  --line:#E4E7EE; --line-s:#EEF0F5; --hair:rgba(16,24,40,.07);
  --hdr-bg:rgba(255,255,255,.86); --ring:rgba(13,67,144,.16);
  --chev-img:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%235C6675' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  /* ink */
  /* R8 · A-01: --faint was #8C97A8 — 2.95:1 on white, 2.61:1 on --surface-3,
   * and it is used as 10-12px text in 21 places (timestamps, the build stamp,
   * breadcrumb separators, keyboard hints, empty-state captions). WCAG AA
   * wants 4.5:1 for text that size. These two values are the LIGHTEST that
   * clear 4.5:1 against the darkest surface each theme puts them on
   * (--surface-3 #EFF1F6 light, #222B3A dark), so the three-tier ink
   * hierarchy ink > muted > faint is preserved rather than flattened:
   *   light #666F7B → 5.09:1 on white, 4.51:1 on --surface-3 (muted is 5.98)
   *   dark  #8692A4 → 5.99:1 on --bg,  4.52:1 on --surface-3 (muted is 6.72)
   * --faint is also a background in two places (.tdot, .jvd); both carry
   * white glyphs, so darkening improves those too. */
  --ink:#0B1220; --muted:#5A6474; --faint:#666F7B;
  /* tones */
  --ok:#0B7A6F; --ok-bg:#E3F5F2; --warn:#8A4B00; --warn-bg:#FFF1D6; --bad:#B42318; --bad-bg:#FEE4E2; --info:#1849A9; --info-bg:#E9F0FB;
  /* R16 · text ON a filled accent. White in light mode; in dark mode the accents
   * turn light, so the text on them turns near-black (DS audit, 6 to 12:1). */
  --on-navy:#FFFFFF; --on-teal:#FFFFFF; --on-bad:#FFFFFF; --on-ok:#FFFFFF;
  /* shape */
  --r-sm:8px; --r:12px; --r-lg:16px; --r-xl:22px; --pill:999px;
  --sh:0 1px 2px rgba(16,24,40,.05),0 1px 3px rgba(16,24,40,.04);
  --sh-lg:0 12px 32px rgba(16,24,40,.12),0 2px 6px rgba(16,24,40,.06);
  --sh-card:0 1px 2px rgba(16,24,40,.04),0 4px 12px rgba(16,24,40,.04);
  /* ---- rhythm --------------------------------------------------------
   * R6 · the single biggest change on every screen. Page padding 20→28
   * and the gap between cards 16→22, so a page breathes instead of
   * stacking. Everything else on the page follows from these two. */
  --s1:4px; --s2:8px; --s3:12px; --s4:16px; --s5:20px; --s6:24px; --s8:32px;
  --pad:28px; --gap:22px;
  /* chrome */
  --hh:56px; --tabh:60px; --sw:264px; --swc:72px; --tap:44px;
  --sat:env(safe-area-inset-top,0px); --sab:env(safe-area-inset-bottom,0px);
  /* ---- type ----------------------------------------------------------
   * R6 · a real gap between a heading and the words under it. 24/15 read
   * as one grey texture; 28/17 against 14.5 body tells the eye where a
   * section starts without needing a box round it. */
  --font:Inter,-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --fs:15.5px; --fs-sm:13.5px; --fs-xs:13px; --fs-2xs:12px; --fs-lg:17px; --fs-h1:28px; --fs-h2:18px;
  /* Cleanup (2027-02-08.1) · the owner (2 Oct 2026): "a slighter increase in the font size across the board, especially in
   * agreements boxes". Every step went up about 1px (was 14.5 / 12.5 / 12 / 11 / 16; h2 17). Headings kept their size or
   * went up 1px, so the hierarchy holds. The ~250 literal sizes the older screens carried (13px, 12px ...) now point at
   * these steps (tools/lookscan.js "TINY" keeps anything under 12px out). */
  /* R58 · --fs-2xs (11px) is the smallest step: the office's uppercase labels, badges and the build stamp (it replaced
   ten literal sizes from 10px to 11.5px in lib.php). Nothing smaller exists. */
  /* R56 · the reading size of a SURFACE. The office keeps --fs (density); the two portals set 16px (nurses on
   * phones abroad, often outdoors). --fs-page / --fs-card / --fs-row are the three heading steps the UI review
   * fixed (page 24px on phones and 28px on a computer, card 18px, row title 16px). */
  --fs-body:var(--fs); --fs-page:24px; --fs-card:18px; --fs-row:16px; --lh-body:1.5; --lh-head:1.25; --measure:68ch;
  /* R56 · motion (UI review §2.3, owner 28 Sep 2026: "animations fading cards"). Press, state, entrance. Only
   * opacity and transform ever animate, nothing loops, and prefers-reduced-motion switches all of it off below. */
  --dur-1:120ms; --dur-2:200ms; --dur-3:260ms; --ease:cubic-bezier(.2,.8,.2,1);
  color-scheme:light;
}

/* ======================================================================
   R6 · DARK MODE.
   Same token NAMES, different values — which is why this is a block of
   colours rather than a second stylesheet. Three states, and the order
   matters: the media query is what an untouched install follows, and the
   two [data-theme] rules let a person's own choice beat their operating
   system in both directions.
   ====================================================================== */
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --navy:#5B93E8; --navy-d:#7FADEE; --navy-l:#16233A; --navy-xl:#131C2B;
    --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft);
    --bg:#0C111B; --surface:#151B26; --surface-2:#1B2230; --surface-3:#222B3A;
    --line:#2A3444; --line-s:#222B3A; --hair:rgba(255,255,255,.07);
    --hdr-bg:rgba(21,27,38,.88); --ring:rgba(91,147,232,.28);
    --chev-img:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23A8B3C4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
    --ink:#E9EDF4; --muted:#A8B3C4; --faint:#8692A4;
    --ok:#3FCFAE; --ok-bg:#0E2B26; --warn:#F0B45C; --warn-bg:#2E2110;
    --bad:#F98A80; --bad-bg:#33191A; --info:#7FADEE; --info-bg:#16233A;
    --on-navy:#0C111B; --on-teal:#0C111B; --on-bad:#0C111B; --on-ok:#0C111B;
    --sh:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);
    --sh-lg:0 12px 32px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4);
    --sh-card:0 1px 2px rgba(0,0,0,.35),0 4px 12px rgba(0,0,0,.28);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --navy:#5B93E8; --navy-d:#7FADEE; --navy-l:#16233A; --navy-xl:#131C2B;
  --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft);
  --bg:#0C111B; --surface:#151B26; --surface-2:#1B2230; --surface-3:#222B3A;
  --line:#2A3444; --line-s:#222B3A; --hair:rgba(255,255,255,.07);
  --hdr-bg:rgba(21,27,38,.88); --ring:rgba(91,147,232,.28);
  --chev-img:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23A8B3C4' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='M6 9l6 6 6-6'/></svg>");
  --ink:#E9EDF4; --muted:#A8B3C4; --faint:#8692A4;
  --ok:#3FCFAE; --ok-bg:#0E2B26; --warn:#F0B45C; --warn-bg:#2E2110;
  --bad:#F98A80; --bad-bg:#33191A; --info:#7FADEE; --info-bg:#16233A;
  --on-navy:#0C111B; --on-teal:#0C111B; --on-bad:#0C111B; --on-ok:#0C111B;
  --sh:0 1px 2px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);
  --sh-lg:0 12px 32px rgba(0,0,0,.55),0 2px 6px rgba(0,0,0,.4);
  --sh-card:0 1px 2px rgba(0,0,0,.35),0 4px 12px rgba(0,0,0,.28);
  color-scheme:dark;
}
/* A white brand logo on a dark ground is usually a white BOX. Nudge the
   few images that are drawn for light backgrounds rather than ban them. */
:root[data-theme="dark"] img.onlight{background:#FFFFFF;border-radius:6px;padding:2px}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) img.onlight{background:#FFFFFF;border-radius:6px;padding:2px}}
/* R59d · the owner (28 Sep 2026): the navy and teal StaffDash logo vanished on the navy client bar and on dark headers.
   Wherever the app draws its own logo it now sits on a white plate, in BOTH themes (--paper is white in both). */
.logoplate{display:inline-flex;align-items:center;justify-content:center;background:var(--paper);border-radius:8px;padding:3px 6px;box-shadow:0 0 0 1px var(--hair);flex:none;line-height:0}
.logoplate img{display:block}

@media(min-width:821px){ :root{ --fs-page:28px; } }
@media(max-width:820px){ :root{ --fs:16px; --fs-sm:14px; --fs-h1:26px; --fs-h2:18px; --pad:18px; --gap:14px; } }
@media(max-width:400px){ :root{ --pad:15px; --gap:12px; } }
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:var(--bg);color:var(--ink);
  font:400 var(--fs)/1.5 var(--font);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"cv11","ss01";
}
h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em;color:var(--ink)}
h1{font-size:var(--fs-h1);line-height:1.2;letter-spacing:-.02em}
h2{font-size:var(--fs-h2);line-height:1.3}
h3{font-size:var(--fs);margin:0 0 6px}
p{margin:0 0 10px}
a{color:var(--navy);text-decoration:none}
a:hover{text-decoration:underline}
small,.small{font-size:var(--fs-sm);color:var(--muted)}
.muted{color:var(--muted)}
code,kbd{font-family:var(--mono);font-size:var(--fs-xs)}
img,svg,video{max-width:100%}
button,input,select,textarea{font-family:inherit}
/* Fourteen pages carry a ".frm input{width:100%}" rule; a checkbox or radio
   caught by it becomes a 300px-wide box and pushes its label text off the
   screen. "html input[type=…]" is (0,1,2) and out-ranks any ".x input" rule.
   (A doubled attribute selector did not, in Chromium.) */
html input[type=checkbox],html input[type=radio]{width:18px;height:18px;min-height:0;padding:0;flex:none;accent-color:var(--navy);-webkit-appearance:auto;appearance:auto;border-radius:0;box-shadow:none}
:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:6px}
::selection{background:var(--navy-l)}
/* R56 · the entrance: a card or row fades in and rises 8px on first paint. The first six are staggered 40ms apart
   (.fx1 to .fx6 from ui_fx(), or data-fx="1" to "6" set on the finished page); nothing after the sixth animates, so a long list never waits.
   Pure CSS: nothing waits on JavaScript, and "both" means the end state (fully shown) holds if it never runs. */
@keyframes sdfxin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.fx,[data-fx]{animation:sdfxin var(--dur-3) var(--ease) both}
.fx2,[data-fx="2"]{animation-delay:40ms}.fx3,[data-fx="3"]{animation-delay:80ms}.fx4,[data-fx="4"]{animation-delay:120ms}.fx5,[data-fx="5"]{animation-delay:160ms}.fx6,[data-fx="6"]{animation-delay:200ms}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}
/* a horizontal rail: chips or tabs that scroll sideways on a phone instead of wrapping into three rows */
.rail{display:flex;gap:8px;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px;
  mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent);-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 28px),transparent)}
.rail::-webkit-scrollbar{display:none}
.rail>*{flex:0 0 auto;white-space:nowrap}
/* R6 · the theme button. Styled here rather than in any one shell,
   because the office console, both portals and the public pages all
   print the same button and each of them names its icon buttons
   differently. */
.thmb{width:40px;height:40px;min-height:0;margin:0;padding:0;border:0;background:transparent;color:var(--muted);
  border-radius:10px;display:inline-grid;place-items:center;cursor:pointer;flex:none}
.thmb:hover{background:var(--surface-2);color:var(--ink)}
.thmb svg{display:block}
:root[data-theme="dark"] .thmb svg circle{fill:currentColor}
/* R27 · the OPEN dropdown list. The closed box has been rounded since R6, but
   the list it opens was the operating system's own square menu, which the
   owner flagged ("all drop downs have a square design"). Browsers that support
   customizable selects (Chrome and Edge 135+, which is what the office uses)
   draw it with the page's own look: rounded, the surface color, the theme.
   Every other browser keeps its native list, which is the safe fallback (and
   on iPhone the native wheel is the better control anyway). Multi-selects and
   list boxes (size=N) are left alone: they never open a menu. */
/* Sixty-odd selects carry an inline padding (padding:6px 8px and the like)
   that wiped out the room for the chevron, so the arrow sat on the text
   (the Owner picker on a record was the worst). The room is kept here. */
select:not([multiple]):not([size]){padding-right:30px!important}
@supports (appearance:base-select){
  select:not([multiple]):not([size]),select:not([multiple]):not([size])::picker(select){appearance:base-select}
  select:not([multiple]):not([size])::picker-icon{display:none}
  select:not([multiple]):not([size]){white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
  select:not([multiple]):not([size])::picker(select){border:1px solid var(--line);border-radius:var(--r);background:var(--glass-menu,var(--surface));color:var(--ink);
    box-shadow:var(--sh-lg);padding:var(--s1);margin-top:var(--s1);max-height:min(360px,60vh);overflow-y:auto}
  select:not([multiple]):not([size]) option{padding:8px 10px;border-radius:var(--r-sm);min-height:36px;display:flex;align-items:center;gap:8px;color:var(--ink);background:transparent;cursor:pointer}
  select:not([multiple]):not([size]) option:hover,select:not([multiple]):not([size]) option:focus-visible{background:var(--surface-2);outline:none}
  select:not([multiple]):not([size]) option:checked{background:var(--navy-xl);color:var(--navy);font-weight:600}
  select:not([multiple]):not([size]) option:disabled{color:var(--faint);cursor:default}
  select:not([multiple]):not([size]) option::checkmark{color:var(--navy)}
  select:not([multiple]):not([size]) optgroup{color:var(--muted);font-weight:600;font-size:var(--fs-sm);padding:6px 0 2px}
  select:not([multiple]):not([size]) optgroup option{font-weight:400;font-size:var(--fs)}
}:root{
  --metal-page:var(--bg);
  --metal-card:linear-gradient(var(--surface),var(--surface));
  --metal-glow:var(--sh-card);
  --metal-pill:var(--surface); --metal-pill-line:transparent;   /* the quote's pills: white, so the gold rating stars keep 3:1 */
  --metal-tile:var(--glass); --metal-tile-line:transparent;
  --metal-opt:var(--surface); --metal-opt-line:transparent; --metal-opt-on:var(--navy-l);
  --metal-btn:linear-gradient(180deg,var(--btn-top),var(--btn)); --metal-btn-line:transparent; --metal-on-btn:#FFFFFF;
  --metal-btn-sh:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px var(--btn);
  --metal-deep:linear-gradient(150deg,var(--sdnavy-top),var(--sdnavy)); --metal-on-deep:#FFFFFF; --metal-on-deep-2:#E6EEFB;
  --metal-band:linear-gradient(90deg,var(--sdnavy),var(--sdnavy-top));
  --metal-bar:linear-gradient(90deg,var(--lt2),var(--btn)); --metal-track:var(--soft-2);
  --metal-ink:var(--ink); --metal-steel:var(--muted); --metal-accent:var(--sd-teal);
}/* ===== R62 · glass tokens (the mockup's own values) and the older names re-pointed ===== */
:root{
  --glass:rgba(255,255,255,.62); --glass-2:rgba(255,255,255,.82); --glass-work:rgba(255,255,255,.86); --glass-menu:#FFFFFF;
  --sheen:rgba(255,255,255,.75); --shade:rgba(20,40,80,.10); --shade-2:rgba(20,40,80,.20); --blur:22px; --zebra:rgba(14,21,34,.035);
  --soft:#E6E9EE; --soft-2:#DCE0E7; --on-soft:#0E1522;
  --btn:#1F63C9; --btn-top:#3E84EA; --on-btn:#FFFFFF; --accent:#1F63C9; --accent-soft:rgba(31,99,201,.12); --on-accent-soft:#154A99;
  --sdnavy:#0D4390; --sdnavy-top:#2A63B8; --sd-bg:#E8EFF9; --sd-ink:#0D4390; --sd-teal:var(--sd-ink);   /* G1d · no teal on any surface; CD1a · no purple: StaffDash navy */ 
  /* G1b · the SOFT BLUE glow (owner, 5 Oct 2026, claude/ADDENDUM-G-AFTER-G1-STARTED.md item 3): very pale blues blended into the
     white, no teal (R62's glow was a mid blue, a TEAL and a light blue). The sheets' glow reads --b1 and --b2, so they turn soft blue too. */
  --b1:#C3D8FF; --b2:#D3E2FF; --b3:#E0EAFF; --av-1:#39CFC9; --av-2:#1F7FD6;
  --lt1:#12C4BE; --lt2:#0DA8B0; --lt3:#1C6ED0;
  --display:"Sora","Segoe UI",system-ui,sans-serif;
  /* the mockup's display sizes (headings of the greeting, the number tiles), next to the unchanged type scale */
  --fs-kpi:30px; --fs-kpi-sm:24px; --fs-display-sm:30px; --fs-card-lg:22px;
  --spring:cubic-bezier(.34,1.56,.64,1);
  /* G1 · the slide-up sheets' scrim, the still status light, the solid panel name of the mockup */
  --scrim:rgba(14,21,34,.30); --live:#12A150; --solid:var(--surface); --sheet-sh:inset 0 1px 0 var(--sheen),0 -24px 60px -24px var(--shade-2);
  --glass-sh:inset 0 1px 0 var(--sheen),0 12px 32px -16px var(--shade-2),0 2px 6px -2px var(--shade);
  /* re-pointed: the ground, the panels, the ink */
  --bg:#EDF1F7; --surface:#FFFFFF; --surface-2:#F4F6FA; --surface-3:#E6E9EE;
  /* NO OUTLINES (the owner's rule): the hairline tokens are transparent, so the ~500 older rules that drew a 1px edge
     round a card, a chip, a box or under a row draw nothing; surfaces separate by tone, space and soft shadow.
     Boxes you type in have a soft fill instead (and show an edge when focused). --divider is the visible tone for the
     few places a line MEANS something (a timeline, a meter's track, a sheet's handle). */
  --line:transparent; --line-s:transparent; --hair:transparent; --divider:#DCE0E7;
  --hdr-bg:var(--glass-work); --ring:rgba(31,99,201,.22);
  --ink:#0E1522; --muted:#4E596D; --faint:#5E6879;
  /* --navy has always meant "the action color" in this code (links, selected states, buttons, focus): it is the
     mockup's accent blue now. StaffDash's own navy is --sdnavy, used on StaffDash things only. */
  --navy:#1F63C9; --navy-d:#154A99; --navy-l:#E4ECF8; --navy-xl:#F0F5FC;
  --ok:#0B7A3E; --ok-bg:#E2F3E9; --warn:#8A5A00; --warn-bg:#F9EEDA; --bad:#A42828; --bad-bg:#F9E2E2; --info:#154A99; --info-bg:#E4ECF8;
  --r-sm:10px; --r:14px; --r-lg:20px; --r-xl:28px;
  --sh:0 2px 6px -2px var(--shade);
  --sh-card:0 12px 32px -18px var(--shade-2),0 2px 6px -2px var(--shade);
  --sh-lg:0 24px 48px -20px rgba(20,40,80,.35),0 4px 12px -4px var(--shade);
  --font:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]){
  --glass:rgba(24,33,52,.55); --glass-2:rgba(24,33,52,.80); --glass-work:rgba(20,28,45,.88); --glass-menu:#141D2F;
  --sheen:rgba(255,255,255,.14); --shade:rgba(0,0,0,.35); --shade-2:rgba(0,0,0,.60); --zebra:rgba(255,255,255,.04);
  --soft:#222A3A; --soft-2:#2C3547; --on-soft:#EAF0FA;
  --btn:#2F6FD9; --btn-top:#4F8DF2; --on-btn:#FFFFFF; --accent:#7DB3FF; --accent-soft:rgba(125,179,255,.14); --on-accent-soft:#B9D6FF;
  --sdnavy:#1E4E9E; --sdnavy-top:#3668BD; --sd-bg:#12284D; --sd-ink:#A9C8FF; --sd-teal:var(--sd-ink);
  --b1:#1A3A78; --b2:#172F66; --b3:#1C2F63;   /* G1b · the recommended dark soft blue: deep, dimmer blues (R62's dark glow had a teal) */
  --scrim:rgba(0,0,0,.55); --live:#3DDC84;
  --lt1:#3FE3D8; --lt2:#1CC6C2; --lt3:#4A94F2;
  --bg:#060A13; --surface:#101827; --surface-2:#151E30; --surface-3:#1C2638;
  --line:transparent; --line-s:transparent; --hair:transparent; --divider:#2C3547; --ring:rgba(125,179,255,.30);
  --ink:#EAF0FA; --muted:#9AA7BD; --faint:#8692A4;
  --navy:#7DB3FF; --navy-d:#A9CCFF; --navy-l:#1F2E45; --navy-xl:#162235;
  --ok:#7BE8A8; --ok-bg:#12291F; --warn:#FFD27A; --warn-bg:#2B2212; --bad:#FF9C9C; --bad-bg:#321818; --info:#B9D6FF; --info-bg:#1F2E45;
  --sh:0 2px 6px -2px rgba(0,0,0,.5);
  --sh-card:0 12px 32px -18px rgba(0,0,0,.7),0 2px 6px -2px rgba(0,0,0,.4);
  --sh-lg:0 24px 48px -20px rgba(0,0,0,.8),0 4px 12px -4px rgba(0,0,0,.5);
  color-scheme:dark } }
:root[data-theme="dark"]{
  --glass:rgba(24,33,52,.55); --glass-2:rgba(24,33,52,.80); --glass-work:rgba(20,28,45,.88); --glass-menu:#141D2F;
  --sheen:rgba(255,255,255,.14); --shade:rgba(0,0,0,.35); --shade-2:rgba(0,0,0,.60); --zebra:rgba(255,255,255,.04);
  --soft:#222A3A; --soft-2:#2C3547; --on-soft:#EAF0FA;
  --btn:#2F6FD9; --btn-top:#4F8DF2; --on-btn:#FFFFFF; --accent:#7DB3FF; --accent-soft:rgba(125,179,255,.14); --on-accent-soft:#B9D6FF;
  --sdnavy:#1E4E9E; --sdnavy-top:#3668BD; --sd-bg:#12284D; --sd-ink:#A9C8FF; --sd-teal:var(--sd-ink);
  --b1:#1A3A78; --b2:#172F66; --b3:#1C2F63;   /* G1b · the recommended dark soft blue: deep, dimmer blues (R62's dark glow had a teal) */
  --scrim:rgba(0,0,0,.55); --live:#3DDC84;
  --lt1:#3FE3D8; --lt2:#1CC6C2; --lt3:#4A94F2;
  --bg:#060A13; --surface:#101827; --surface-2:#151E30; --surface-3:#1C2638;
  --line:transparent; --line-s:transparent; --hair:transparent; --divider:#2C3547; --ring:rgba(125,179,255,.30);
  --ink:#EAF0FA; --muted:#9AA7BD; --faint:#8692A4;
  --navy:#7DB3FF; --navy-d:#A9CCFF; --navy-l:#1F2E45; --navy-xl:#162235;
  --ok:#7BE8A8; --ok-bg:#12291F; --warn:#FFD27A; --warn-bg:#2B2212; --bad:#FF9C9C; --bad-bg:#321818; --info:#B9D6FF; --info-bg:#1F2E45;
  --sh:0 2px 6px -2px rgba(0,0,0,.5);
  --sh-card:0 12px 32px -18px rgba(0,0,0,.7),0 2px 6px -2px rgba(0,0,0,.4);
  --sh-lg:0 24px 48px -20px rgba(0,0,0,.8),0 4px 12px -4px rgba(0,0,0,.5);
  color-scheme:dark }
/* G2c · the office (work surface) has no teal (G1b's rule). CD1a · and no purple (the owner, 7 Oct 2026): the mint tint, teal
   edges and teal words G2c turned blue-violet are the platform's light blue now, the same in the office and the signed-in
   client portal (body.app) as everywhere else. */
html[data-surface="work"],body.app{ --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft); --on-teal:var(--on-btn) }   /* G3 · and the signed-in client portal (body.app) */
@media(prefers-color-scheme:dark){ html[data-surface="work"]:not([data-theme="light"]),html:not([data-theme="light"]) body.app{ --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft); --on-teal:#0C111B } }
html[data-surface="work"][data-theme="dark"],html[data-theme="dark"] body.app{ --teal:var(--accent); --teal-d:var(--on-accent-soft); --teal-l:var(--accent-soft); --on-teal:#0C111B }
@media(max-width:820px){ :root{ --blur:14px } }
/* G3b · EMS COLORS: RESCUE BLUE (the owner's pick, 6 Oct 2026; claude/BRIEF-G3b-TWO-BOARDS-ONE-ENGINE.md section 7). Anything
   EMS wears it: the EMS board, an EMS job's page, the employer sign-up when its board is EMS (the four EMS tiles, "EMS
   staff", the setup panel, Continue) and Book staff's EMS card. A scope, on <html> or on one box: only the action and
   highlight colors change (deep rescue blue buttons, signal orange highlights); --navy is the old name of the action color.
   Nursing, the office and the Career Profile stay soft blue. Night Shift and Tactical are not built (EMSPalettes.dc.html). */
.ems{ --btn:#0B4FB3; --btn-top:#2E72DA; --on-btn:#FFFFFF; --accent:#0B4FB3; --accent-soft:rgba(11,79,179,.10); --on-accent-soft:#083B86; --navy:#0B4FB3; --navy-d:#083B86; --ring:rgba(11,79,179,.22);
  --hl:#C2410C; --hl-soft:rgba(234,88,12,.12); --on-hl-soft:#9A3412 }
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]).ems,:root:not([data-theme="light"]) .ems{ --btn:#2563D9; --btn-top:#4A84EE; --on-btn:#FFFFFF; --accent:#8DB6FF; --accent-soft:rgba(141,182,255,.14); --on-accent-soft:#BCD5FF; --navy:#8DB6FF; --navy-d:#BCD5FF; --ring:rgba(141,182,255,.30);
  --hl:#FF8A4C; --hl-soft:rgba(255,138,76,.16); --on-hl-soft:#FFC09B } }
:root[data-theme="dark"].ems,:root[data-theme="dark"] .ems{ --btn:#2563D9; --btn-top:#4A84EE; --on-btn:#FFFFFF; --accent:#8DB6FF; --accent-soft:rgba(141,182,255,.14); --on-accent-soft:#BCD5FF; --navy:#8DB6FF; --navy-d:#BCD5FF; --ring:rgba(141,182,255,.30);
  --hl:#FF8A4C; --hl-soft:rgba(255,138,76,.16); --on-hl-soft:#FFC09B }
/* the EMS board's glow: Rescue Blue's blues with one faint orange (the owner-approved exception to "blue only", EMS board only) */
html.emsglow{ --b1:#BCD2FF; --b2:#FFD9C2; --b3:#D6E3FF }
@media(prefers-color-scheme:dark){ html.emsglow:not([data-theme="light"]){ --b1:#123C80; --b2:#5A260C; --b3:#0D2759 } }
html.emsglow[data-theme="dark"]{ --b1:#123C80; --b2:#5A260C; --b3:#0D2759 }/* ===== R62 · base: type, the glow, the logo ===== */
body{font-family:var(--font);background-color:var(--bg)}
h1,h2,h3,h4{font-family:var(--display);letter-spacing:-.02em}
h1{font-weight:300} h2{font-weight:400} /* design-ok: Sora display weights from the approved glass mockup */
h3,h4{font-family:var(--font);font-weight:600;letter-spacing:0}
code,kbd,.mono,.num{font-family:var(--mono)}
.num,.mono{font-variant-numeric:tabular-nums}
.glbl{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
::selection{background:var(--accent-soft)}
/* The glow the glass floats over: three soft colored lights, one fixed layer behind the page (no markup: every shell
   gets it). Work screens show it faint, portals half, public pages full and drifting. */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(42vmax 42vmax at 80% -8%,var(--b1),transparent 64%),radial-gradient(30vmax 30vmax at 100% 40%,var(--b2),transparent 62%),radial-gradient(38vmax 38vmax at 0% 100%,var(--b3),transparent 64%); /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
  opacity:.75}
html[data-surface="work"] body::before{opacity:.32}
html[data-surface="portal"] body::before{opacity:.55}
/* G1b · soft blue (addendum item 3): the glow is blurred wide (120px, the layer reaches past the edges so its rim does not show)
   so it fades into the white instead of showing as patches; its strength per surface, light / dark: public .55 / .40, portals
   .45 / .32, work .30 / .22 */
body::before{inset:-160px;filter:blur(120px);opacity:.55}
html[data-surface="portal"] body::before{opacity:.45}
html[data-surface="work"] body::before{opacity:.30}
:root[data-theme="dark"] body::before{opacity:.40}
:root[data-theme="dark"][data-surface="portal"] body::before{opacity:.32}
:root[data-theme="dark"][data-surface="work"] body::before{opacity:.22}
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]) body::before{opacity:.40} :root:not([data-theme="light"])[data-surface="portal"] body::before{opacity:.32} :root:not([data-theme="light"])[data-surface="work"] body::before{opacity:.22} }
@media(max-width:820px){ body::before{background:radial-gradient(52vmax 52vmax at 90% -10%,var(--b1),transparent 62%),radial-gradient(40vmax 40vmax at 0% 100%,var(--b3),transparent 62%)} } /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
@keyframes sdaura{from{transform:none}to{transform:translate3d(-3vmax,2vmax,0) scale(1.06)}}
@media(prefers-reduced-motion:no-preference){ html:not([data-surface="work"]):not([data-surface="portal"]) body::before{animation:sdaura 28s var(--ease) infinite alternate} } /* design-ok: approved: the public glow drift and the sign-in card fade, off under reduced motion */
/* The built-in logo has a light and a dark drawing; the one for the theme shows (no white plate needed). */
.sdart{display:inline-flex;align-items:center;line-height:0;flex:none}
.sdart img{display:block}
.sdart .dk{display:none}
:root[data-theme="dark"] .sdart .lt{display:none}
:root[data-theme="dark"] .sdart .dk{display:block}
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]) .sdart .lt{display:none} :root:not([data-theme="light"]) .sdart .dk{display:block} }
/* the sliding pill behind the selected tab (glass_js adds it where there is script; without it the tab is filled) */
.gtrack{position:relative;isolation:isolate}
.gpill{position:absolute;left:0;top:0;z-index:-1;border-radius:999px;pointer-events:none;transition:transform .5s var(--spring),width .5s var(--spring),height .3s var(--ease)} /* design-ok: approved: the public glow drift and the sign-in card fade, off under reduced motion */
@media(prefers-reduced-motion:reduce){ .gpill{transition:none} }
/* Rows and boxes that older screens separated ONLY with a 1px edge (now transparent) get a faint fill and rounded
   ends instead, so a list still reads as rows. (A page's own rule sets no background on these, so this applies.) */
.srow,.lrow,.refrow,.ntrow,.scrow,.cprow,.cpjob,.cpro,.cpshare,.cmrec .cmrow,.jrruns li,.ivtpl,.permcaps .permi,.preset label,.opts label,.steps li,.browse li a{background:var(--zebra);border-radius:14px}
a.srow:hover,.browse li a:hover{background:var(--soft)}
.vtog{background:var(--soft);padding:3px;gap:2px}
.vtog a{border-radius:999px}
/* the wordmark next to the logo on the public pages and portal bars */
.sdlock{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:inherit;min-width:0}
.sdlock:hover{text-decoration:none}/* ===== G1 · shared glass components (claude/BRIEF-G-THE-GLASS-LOOK.md §4) ===== */
@media (prefers-reduced-transparency:reduce){ :root{--glass:var(--surface);--glass-2:var(--surface);--glass-work:var(--surface)}
  .glass,.side,.hdr,.tabbar,.appbar,.pc,.card,dialog.gsheet,.gtoast{-webkit-backdrop-filter:none!important;backdrop-filter:none!important} }
.glass{position:relative;background:var(--glass);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.7);backdrop-filter:blur(var(--blur)) saturate(1.7);box-shadow:var(--glass-sh);isolation:isolate}
.glass::after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(180deg,var(--sheen),transparent 38%);opacity:.55;pointer-events:none;z-index:-1} /* design-ok: the approved glass mockup (the sheen on a glass panel) */
html[data-surface="work"] .glass{background:var(--glass-work);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .glass{background:var(--glass-2)} }
.gpanel{border-radius:24px;padding:20px;display:flex;flex-direction:column;gap:12px;min-width:0}
.gph{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.gph h2{font-size:var(--fs-card-lg);margin:0}
/* buttons (the base is here so a .btn looks right on every surface; the office layer refines its older sizes) */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--tap);padding:0 22px;border:0;border-radius:999px;
  background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;white-space:nowrap; /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px var(--btn);transition:transform .35s var(--spring),box-shadow .3s var(--ease)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.btn:hover{color:var(--on-btn);text-decoration:none}
.btn:active{transform:scale(.96)}
.btn.soft,.btn.soft:hover{background:var(--soft);background-image:none;color:var(--on-soft);box-shadow:inset 0 1px 0 var(--sheen)}
.btn.soft:hover{background:var(--soft-2)}
.btn.quiet,.btn.quiet:hover{background:transparent;background-image:none;color:var(--accent);box-shadow:none}
.btn.quiet:hover{background:var(--accent-soft)}
.btn.block{width:100%}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;cursor:default;transform:none}
/* the owner (5 Oct 2026): the words on a blue button are WHITE, whatever an older "color:inherit" rule says */
.btn:where(:not(.ghost,.soft,.quiet,.danger,.teal)),.btn:where(:not(.ghost,.soft,.quiet,.danger,.teal)) *{color:var(--on-btn)}
/* a keyboard-only ring on buttons and links; a field shows focus by brightening (below), never an outline box */
/* G1 · a field you click into: never an outline box (every surface; each shell's layer adds its brightening) */
:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):focus,:where(input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea):focus-visible{outline:none}
:where(button,a,summary,[role="button"],[tabindex]:not(input,select,textarea)):focus{outline:none}
:where(button,a,summary,[role="button"],[tabindex]:not(input,select,textarea)):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.gicb{width:44px;height:44px;border:0;border-radius:50%;background:var(--soft);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;flex:0 0 auto;padding:0;
  transition:transform .35s var(--spring),background .2s var(--ease)}
.gicb:hover{background:var(--soft-2)}
.gicb:active{transform:scale(.92)}
.gicb.clear{background:transparent}
.gicb.clear:hover{background:var(--soft)}
.gicb svg{width:20px;height:20px}
/* list rows */
.gqueue{display:flex;flex-direction:column;gap:6px}
.gqrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;min-height:var(--tap);border-radius:16px;background:var(--zebra);border:0;width:100%;text-align:left;
  color:var(--ink);text-decoration:none;font:inherit;cursor:pointer;transition:transform .3s var(--spring),background .2s var(--ease)}
.gqrow:hover{background:var(--soft);text-decoration:none}
.gqrow:active{transform:scale(.985)}
.gqrow.static{cursor:default}
.gqrow.static:active{transform:none}
.gqrow b{font-weight:600;display:block}
.gqrow small{color:var(--muted);font-size:var(--fs-sm);display:block}
.gqrow time{font-family:var(--mono);font-size:var(--fs-sm);color:var(--muted);min-width:56px}
.gbar{display:block;height:8px;border-radius:999px;background:var(--soft-2);overflow:hidden;min-width:60px}
.gbar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--lt2),var(--btn))} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
/* the status light: STILL (owner, 5 Oct 2026: no pulsing anywhere) */
.gdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--live);flex:0 0 auto;box-shadow:0 0 0 3px color-mix(in srgb,var(--live) 22%,transparent)}
.gdot.soon{background:var(--btn);box-shadow:0 0 0 3px var(--accent-soft)}
.gdot.ring{background:var(--faint);box-shadow:none}
/* the sliding pill: equal tabs, --n of them, --k the chosen one (0-based); a script sets --k, without one the chosen tab is filled */
.gpills{position:relative;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);padding:4px;border-radius:999px;background:var(--soft);isolation:isolate}
.gpills>.gknob{position:absolute;top:4px;bottom:4px;left:4px;width:calc((100% - 8px) / var(--n,2));border-radius:999px;z-index:-1;pointer-events:none;
  background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -10px var(--btn); /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
  transform:translateX(calc(100% * var(--k,0)));transition:transform .5s var(--spring)} /* design-ok: the approved sliding pill (G1 brief §4), off under reduced motion */
.gpills>a,.gpills>button{position:relative;border:0;background:none;min-height:40px;padding:0 14px;border-radius:999px;color:var(--muted);font:inherit;font-weight:500;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;
  transition:color .3s var(--ease),transform .3s var(--spring)}
.gpills>a:hover,.gpills>button:hover{color:var(--ink);text-decoration:none}
.gpills>a:active,.gpills>button:active{transform:scale(.95)}
.gpills>.on,.gpills>[aria-pressed="true"],.gpills>[aria-current="page"]{color:var(--on-btn);font-weight:600}
.gpills:not(:has(>.gknob))>.on{background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn))} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
/* G1 · the phone tab bars carry the sliding pill too (glass_js): a soft pill behind the current tab; the bar stays fixed */
.tabbar.gtrack{position:fixed}
.tabbar .gpill{background:var(--accent-soft);border-radius:18px}
.tabbar.gmoving a.on,.tabbar.gmoving>a.on{background:transparent}
.gpills.soft>.gknob{background:var(--accent-soft);background-image:none;box-shadow:none}
.gpills.soft>.on,.gpills.soft>[aria-pressed="true"],.gpills.soft>[aria-current="page"]{color:var(--on-accent-soft)}
/* fields: a soft fill; the focused one BRIGHTENS (no outline box, owner 5 Oct 2026) */
.gfld{display:flex;flex-direction:column;gap:6px;min-width:0}
.gfld>span{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500}
.gfld input,.gfld select,.gfld textarea{min-height:var(--tap);border:0;border-radius:14px;background:var(--soft);padding:0 14px;font:inherit;width:100%;color:var(--ink);outline:0;box-shadow:none}
.gfld textarea{padding:12px 14px;min-height:96px}
.gfld input:focus,.gfld select:focus,.gfld textarea:focus{background:var(--glass-2);box-shadow:inset 0 1px 0 var(--sheen),0 8px 20px -12px var(--shade-2);outline:0}
.gpair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(180px,100%),1fr));gap:10px}
.gpick{border:0;min-height:38px;padding:0 14px;border-radius:999px;background:var(--soft);color:var(--muted);font:inherit;font-weight:600;font-size:var(--fs-sm);cursor:pointer;
  transition:background .2s var(--ease),transform .3s var(--spring)}
.gpick:active{transform:scale(.95)}
.gpick.on,.gpick[aria-pressed="true"]{background:var(--accent-soft);color:var(--on-accent-soft)}
/* the toast (optional Undo) */
.gtoast{position:fixed;left:50%;bottom:calc(24px + var(--sab));transform:translateX(-50%);z-index:300;display:flex;align-items:center;gap:12px;min-height:52px;padding:6px 8px 6px 18px;border-radius:999px;
  font-weight:500;max-width:calc(100% - 32px);color:var(--ink);background:var(--glass-2);-webkit-backdrop-filter:blur(22px) saturate(1.7);backdrop-filter:blur(22px) saturate(1.7);box-shadow:var(--glass-sh);animation:gtoastIn .45s var(--spring) both} /* design-ok: the approved toast (G1 brief §4), off under reduced motion */
.gtoast .btn{min-height:40px;padding:0 16px}
@keyframes gtoastIn{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:820px){ .gtoast{bottom:calc(96px + var(--sab))} }
/* the stacked logo (owner, 5 Oct 2026: the mark with "StaffDash" under it, everywhere, the folded side menu and phone bars too) */
.sdstack{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sdgap,4px);line-height:0;flex:none;text-decoration:none}
.sdstack .sdm1,.sdstack .sdw1{display:block}
.sdstack .sdm1{filter:drop-shadow(0 4px 8px rgba(31,99,201,.22))} /* design-ok: the approved glass mockup (the logo's soft shadow) */
.sdstack .dk{display:none}
:root[data-theme="dark"] .sdstack .lt{display:none}
:root[data-theme="dark"] .sdstack .dk{display:block}
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]) .sdstack .lt{display:none} :root:not([data-theme="light"]) .sdstack .dk{display:block} }
/* ===== G1 · THE SHEET (every menu, confirmation, detail view and form opens as one) ===== */
dialog.gsheet{position:fixed;inset:auto 0 -40px 0;margin:0 auto;width:min(580px,100%);max-width:100%;max-height:calc(88vh + 40px);max-height:calc(88dvh + 40px);overflow-y:auto;overscroll-behavior:contain;
  border:0;border-radius:30px 30px 0 0;padding:0 22px calc(64px + var(--sab));color:var(--ink);font:inherit;
  background:var(--glass-2);
  background:radial-gradient(120% 60% at 100% 0%,color-mix(in srgb,var(--b1) 30%,transparent),transparent 60%),radial-gradient(90% 50% at 0% 0%,color-mix(in srgb,var(--b2) 22%,transparent),transparent 60%),var(--glass-2); /* design-ok: the owner (5 Oct 2026): pop-ups match the glass theme, a soft blue and teal glow at the top */
  -webkit-backdrop-filter:blur(28px) saturate(1.7);backdrop-filter:blur(28px) saturate(1.7);box-shadow:var(--sheet-sh);
  flex-direction:column;gap:16px;--dy:0px;transform:translateY(var(--dy));animation:gsUp .55s var(--spring)} /* design-ok: the approved sheet motion (G1 brief §1: slide up on a spring), off under reduced motion */
dialog.gsheet[open]{display:flex}
dialog.gsheet{height:auto;min-height:0;box-sizing:border-box}
dialog.gsheet>*{flex:0 0 auto}
/* the older sheets and dialogs, now gsheets: their own inner panels give way to the glass */
dialog.gsheet.phsheet .phin{background:transparent;padding:0;max-width:none;max-height:none;overflow:visible;border-radius:0;margin:0}
dialog.gsheet.phsheet .phopt{background:color-mix(in srgb,var(--glass-2) 70%,transparent);border:0;box-shadow:inset 0 1px 0 var(--sheen);border-radius:18px}
dialog.gsheet.askdlg .askdlg-top{position:static;background:transparent;margin:0;padding:0}
dialog.gsheet.askdlg .askdlg-top .cxgrab{display:none}
dialog.gsheet.caldlg,dialog.gsheet.jrdlg,dialog.gsheet.iedlg{padding-top:0}
dialog.gsheet.wide{width:min(880px,100%)}
/* G1b · THE TOP DRAWER (owner, 5 Oct 2026, addendum item 1): Notifications drop down from the top on every bell; the same glass,
   the handle at the BOTTOM (drag it up past 90px to close); a 440px panel under the bell on a computer, full width on a phone */
dialog.gsheet.top{inset:-40px 14px auto auto;margin:0;width:min(440px,calc(100% - 28px));max-height:calc(80vh + 40px);max-height:calc(80dvh + 40px);border-radius:0 0 28px 28px;
  padding:calc(56px + var(--sat)) 20px 4px;box-shadow:inset 0 -1px 0 var(--sheen),0 24px 60px -24px var(--shade-2);animation:gsDrop .5s var(--spring)} /* design-ok: the approved drawer motion (G1b addendum item 1), off under reduced motion */
dialog.gsheet.top .ggrab{order:99;padding:6px 0 12px}
@keyframes gsDrop{from{transform:translateY(-105%)}to{transform:translateY(0)}}
@keyframes gsLift{from{transform:translateY(var(--dy))}to{transform:translateY(-105%)}}
@media(max-width:820px){ dialog.gsheet.top{inset:-40px 0 auto 0;width:100%;border-radius:0 0 26px 26px} }
dialog.gsheet.drag{animation:none;transition:none}
dialog.gsheet.out{animation:gsDown .23s var(--ease) both}
dialog.gsheet.top.drag{animation:none}
dialog.gsheet.top.out{animation:gsLift .24s var(--ease) both}
/* the bell drawer's list: Mark all read dims it (G1b) */
.gbellsheet .gread .npit,.gbellsheet .gread .ckrow,.gbellsheet .gread li,.gbellsheet.gread .npit{opacity:.6}
.gbellsheet .gbellall{align-self:flex-start;margin-top:6px}
.gbellsheet .gbload{color:var(--muted)}
dialog.gsheet::backdrop{background:rgba(14,21,34,.21);-webkit-backdrop-filter:blur(6px) saturate(1.3);backdrop-filter:blur(6px) saturate(1.3);animation:gsFade .3s var(--ease) both} /* design-ok: the scrim (::backdrop cannot read the theme tokens in every browser) */
:root[data-theme="dark"] dialog.gsheet::backdrop{background:rgba(0,0,0,.40)} /* design-ok: the scrim, dark */
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]) dialog.gsheet::backdrop{background:rgba(0,0,0,.40)} } /* design-ok: the scrim, dark */
dialog.gsheet.out::backdrop{animation:gsFadeOut .23s var(--ease) both}
@keyframes gsUp{from{transform:translateY(105%)}to{transform:translateY(0)}}
@keyframes gsDown{from{transform:translateY(var(--dy))}to{transform:translateY(105%)}}
@keyframes gsFade{from{opacity:0}}
@keyframes gsFadeOut{to{opacity:0}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ dialog.gsheet{background:var(--surface)} }
.ggrab{align-self:stretch;display:flex;justify-content:center;padding:12px 0 4px;margin:0;border:0;background:none!important;box-shadow:none!important;min-height:0!important;cursor:grab;touch-action:none;flex:0 0 auto;width:100%}
.ggrab i{display:block;width:44px;height:5px;border-radius:3px;background:var(--soft-2)}
.ggrab:active{transform:none}
.ggrab:focus,.ggrab:focus-visible{outline:none}
.gsh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.gsh h2{font-family:var(--display);font-size:var(--fs-card-lg);font-weight:300;line-height:1.2;margin:0;letter-spacing:-.02em} /* design-ok: Sora display weights from the approved glass mockup */
.gsh p{color:var(--muted);margin:6px 0 0}
.gacts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.gacts .btn{flex:1 1 160px}
.galist{display:flex;flex-direction:column;gap:6px}
.garow{display:flex;align-items:center;gap:14px;min-height:56px;padding:8px 16px;border:0;border-radius:18px;cursor:pointer;text-align:left;font:inherit;font-weight:500;width:100%;color:var(--ink);text-decoration:none;
  background:color-mix(in srgb,var(--glass-2) 70%,transparent);box-shadow:inset 0 1px 0 var(--sheen);transition:background .2s var(--ease),transform .3s var(--spring)}
.garow:hover{background:var(--glass-2);text-decoration:none}
.garow:active{transform:scale(.98)}
.garow .gico{width:36px;height:36px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--on-accent-soft);flex:0 0 auto}
.garow .gico svg{width:18px;height:18px}
.garow.ok .gico{background:var(--ok-bg);color:var(--ok)}
.garow.danger{color:var(--bad)}
.garow.danger .gico{background:var(--bad-bg);color:var(--bad)}
.garow small{display:block;font-size:var(--fs-sm);color:var(--muted);font-weight:400}
.garow .grow{flex:1;min-width:0}
.gsheet .gfld input,.gsheet .gfld select,.gsheet .gfld textarea{background:var(--glass)}
/* the confirm sheet (data-confirm, and SDSheet.confirm()) */
.sdconfirm .gsh h2{font-size:var(--fs-card-lg)}
.sdconfirm .btn.danger{background:var(--bad-bg);background-image:none;color:var(--bad);box-shadow:none}
/* a menu that opens as a sheet keeps its own markup (moved in while open, put back after): undo its dropdown layout */
.gsheet .gsrc{display:block}
.gsheet .gsrc>*{display:flex!important;flex-direction:column;gap:6px;position:static!important;inset:auto!important;transform:none!important;width:auto!important;min-width:0!important;max-width:none!important;max-height:none!important;
  margin:0!important;padding:0!important;background:transparent!important;box-shadow:none!important;border:0!important;opacity:1!important;visibility:visible!important;overflow:visible!important}
dialog.gsheet.gmenusheet .gsrc>*>a,dialog.gsheet.gmenusheet .gsrc>*>button,dialog.gsheet.gmenusheet .gsrc>*>form>button,dialog.gsheet.gmenusheet .gsrc>*>.umrow{display:flex;align-items:center;gap:14px;min-height:52px;padding:8px 16px;border:0;border-radius:18px;width:100%;text-align:left;
  font:inherit;font-weight:500;color:var(--ink);text-decoration:none;background:color-mix(in srgb,var(--glass-2) 70%,transparent);box-shadow:inset 0 1px 0 var(--sheen);cursor:pointer}
dialog.gsheet.gmenusheet .gsrc>*>a:hover,dialog.gsheet.gmenusheet .gsrc>*>button:hover,dialog.gsheet.gmenusheet .gsrc>*>form>button:hover{background:var(--glass-2)}
.gsheet .gsrc>*>form{margin:0;display:block}
.gsheet .gsrc .umh{display:flex;flex-direction:column;padding:0 4px 4px}
.gsheet .gsrc .umsep{display:none}
@media(max-width:600px){ dialog.gsheet{padding-left:16px;padding-right:16px} }
@media(prefers-reduced-motion:reduce){ dialog.gsheet,dialog.gsheet::backdrop,dialog.gsheet.out,.gtoast,.gpills>.gknob,.gqrow,.garow,.btn,.gicb,.gpick{animation:none!important;transition:none!important} }/* ===== G1c · drawers from the button's side ===== */
:root{--gios:cubic-bezier(.32,.72,0,1);--gout:cubic-bezier(.4,0,.9,.4)}
dialog.gsheet{--dx:0px;transform:translate(var(--dx),var(--dy));transform-origin:50% 100%;animation:gdSlideInB .32s var(--gios) both} /* design-ok: G1d · the drawer slides FLAT from its edge (0.32s, the iOS curve), a fade only under reduced motion */
dialog.gsheet.out{animation:gdSlideOutB .24s var(--gout) both}
dialog.gsheet.drag,dialog.gsheet.top.drag,dialog.gsheet.from-top.drag{animation:none;transition:none}
/* from the TOP (the top bar: Notifications, New, the account, recent, search): under its button on a computer */
dialog.gsheet.top,dialog.gsheet.from-top{top:-40px;bottom:auto;right:var(--gtr,14px);left:var(--gtl,auto);margin:0;width:min(440px,calc(100% - 28px));max-height:calc(80vh + 40px);max-height:calc(80dvh + 40px);
  border-radius:0 0 30px 30px;padding:calc(56px + var(--sat)) 20px 4px;box-shadow:inset 0 -1px 0 var(--sheen),0 24px 60px -24px var(--shade-2);transform-origin:50% 0;animation:gdSlideInT .32s var(--gios) both} /* design-ok: G1d · flat slide from the top, a fade only under reduced motion */
dialog.gsheet.top .ggrab,dialog.gsheet.from-top .ggrab{order:99;padding:6px 0 12px}
dialog.gsheet.top.out,dialog.gsheet.from-top.out{animation:gdSlideOutT .24s var(--gout) both}
dialog.gsheet.palsheet.from-top{width:min(640px,calc(100% - 28px))}
@media(max-width:820px){ dialog.gsheet.top,dialog.gsheet.from-top,dialog.gsheet.palsheet.from-top{left:0;right:0;width:100%;border-radius:0 0 26px 26px} }
/* from the RIGHT (anything in the page or the middle) and the LEFT (the side menu; the phone's menu) */
dialog.gsheet.from-right,dialog.gsheet.from-left{top:0;bottom:0;margin:0;height:auto;max-height:none;width:min(440px,86vw);gap:14px}
dialog.gsheet.from-right{left:auto;right:0;border-radius:30px 0 0 30px;padding:calc(20px + var(--sat)) 22px calc(26px + var(--sab)) 30px;transform-origin:100% 50%;animation:gdSlideInR .32s var(--gios) both; /* design-ok: G1d · flat slide from the right, a fade only under reduced motion */
  box-shadow:inset 1px 0 0 var(--sheen),-24px 0 60px -24px var(--shade-2)}
dialog.gsheet.from-left{left:0;right:auto;width:min(380px,84vw);border-radius:0 30px 30px 0;padding:calc(20px + var(--sat)) 30px calc(26px + var(--sab)) 22px;transform-origin:0 50%;animation:gdSlideInL .32s var(--gios) both; /* design-ok: G1d · flat slide from the left, a fade only under reduced motion */
  box-shadow:inset -1px 0 0 var(--sheen),24px 0 60px -24px var(--shade-2)}
dialog.gsheet.from-right.out{animation:gdSlideOutR .24s var(--gout) both}
dialog.gsheet.from-left.out{animation:gdSlideOutL .24s var(--gout) both}
dialog.gsheet.from-right.wide,dialog.gsheet.from-left.wide{width:min(760px,94vw)}
dialog.gsheet.from-right.drag,dialog.gsheet.from-left.drag{animation:none;transition:none}
@media(max-width:600px){ dialog.gsheet.from-right{width:86vw;padding-left:26px;padding-right:16px} dialog.gsheet.from-left{width:84vw;padding-left:16px;padding-right:26px}
  dialog.gsheet.from-right.wide,dialog.gsheet.from-left.wide{width:94vw} }
/* the grip on the edge that faces the page: a short vertical bar, kept in the middle while the drawer scrolls */
dialog.gsheet.from-right>.ggrab,dialog.gsheet.from-left>.ggrab{position:sticky;top:calc(50% - 32px);align-self:flex-start;order:-1;width:24px;height:64px;padding:0;margin:0 0 -78px -28px;z-index:3;cursor:grab}
dialog.gsheet.from-left>.ggrab{align-self:flex-end;margin:0 -28px -78px 0}
@media(max-width:600px){ dialog.gsheet.from-right>.ggrab{margin-left:-25px} dialog.gsheet.from-left>.ggrab{margin-right:-25px} }
dialog.gsheet.from-right>.ggrab i,dialog.gsheet.from-left>.ggrab i{width:5px;height:44px}
/* G1d (owner, 7 Oct 2026: "the navigation between tabs in the drawer looks like as if you're turning a book page"): FLAT. A pure
   translate from the edge and back, no perspective, no turn, no fade (G1c rolled in with rotateY 22deg / rotateX 18deg). */
@keyframes gdSlideInB{from{transform:translateY(calc(100% + 48px))}to{transform:translateY(0)}}
@keyframes gdSlideOutB{from{transform:translate(var(--dx),var(--dy))}to{transform:translateY(calc(100% + 48px))}}
@keyframes gdSlideInT{from{transform:translateY(calc(-100% - 48px))}to{transform:translateY(0)}}
@keyframes gdSlideOutT{from{transform:translate(var(--dx),var(--dy))}to{transform:translateY(calc(-100% - 48px))}}
@keyframes gdSlideInR{from{transform:translateX(calc(100% + 32px))}to{transform:translateX(0)}}
@keyframes gdSlideOutR{from{transform:translate(var(--dx),var(--dy))}to{transform:translateX(calc(100% + 32px))}}
@keyframes gdSlideInL{from{transform:translateX(calc(-100% - 32px))}to{transform:translateX(0)}}
@keyframes gdSlideOutL{from{transform:translate(var(--dx),var(--dy))}to{transform:translateX(calc(-100% - 32px))}}
/* a drawer opened from a drawer on the same edge SWAPS what is inside (a quick crossfade), instead of one rolling out and another in */
@keyframes gdSwapIn{from{opacity:0}to{opacity:1}}
@keyframes gdSwapOut{from{opacity:1}to{opacity:0}}
dialog.gsheet.gswap,dialog.gsheet.gswap.from-top,dialog.gsheet.gswap.from-right,dialog.gsheet.gswap.from-left,dialog.gsheet.gswap.from-bottom{animation:gdSwapIn .18s var(--ease) both}
dialog.gsheet.gswapout,dialog.gsheet.gswapout.from-top,dialog.gsheet.gswapout.from-right,dialog.gsheet.gswapout.from-left,dialog.gsheet.gswapout.from-bottom{animation:gdSwapOut .18s var(--ease) both}
dialog.gsheet.gswap::backdrop{animation:none}
dialog.gsheet.gswapout::backdrop{animation:none;opacity:0}
@keyframes gdFadeIn{from{opacity:0}to{opacity:1}}
@keyframes gdFadeOut{from{opacity:1}to{opacity:0}}
/* the faded layer: the scrim at 40%, no blur (the page tips back behind it); a tap on it closes */
dialog.gsheet::backdrop{background:rgba(14,21,34,.12);-webkit-backdrop-filter:none;backdrop-filter:none;animation:gsFade .4s var(--ease) both} /* design-ok: the scrim at 40% (::backdrop cannot read the theme tokens in every browser) */
:root[data-theme="dark"] dialog.gsheet::backdrop{background:rgba(0,0,0,.22)} /* design-ok: the scrim at 40%, dark */
@media(prefers-color-scheme:dark){ :root:not([data-theme="light"]) dialog.gsheet::backdrop{background:rgba(0,0,0,.22)} } /* design-ok: the scrim at 40%, dark */
dialog.gsheet.out::backdrop{animation:gsFadeOut .3s var(--ease) both}
/* a drawer that stepped aside for an "Are you sure?" (or for a drawer opened from inside it) waits, out of sight */
dialog.gsheet.gsaway{display:none!important;animation:none}
dialog.gsheet.gsaway::backdrop{opacity:0;animation:none}
/* the X in a drawer's head */
.gsh .gsx{flex:none;margin:-4px -6px 0 0;width:44px;height:44px;min-width:44px;min-height:0;padding:0;border:0;border-radius:50%;background:transparent;background-image:none;box-shadow:none;color:var(--muted);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s var(--ease),transform .3s var(--spring)}
.gsh .gsx:hover{background:var(--soft);color:var(--ink);box-shadow:none;transform:none}
.gsh .gsx:active{transform:scale(.92)}
.gsh .gsx svg{flex:none;width:18px;height:18px}
/* the scroll bar inside every drawer and sheet: no track; a thin faded bar inside the glass, kept off the rounded corners */
dialog.gsheet,.drawer,.sheetck~.sheet,.sheetck~.sheet .sheetbody,.moresheet .sheet{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 14%,transparent) transparent}
dialog.gsheet:hover,.drawer:hover,.sheetck~.sheet:hover,.sheetck~.sheet .sheetbody:hover,.moresheet .sheet:hover{scrollbar-color:color-mix(in srgb,var(--ink) 26%,transparent) transparent}
dialog.gsheet::-webkit-scrollbar,.drawer::-webkit-scrollbar,.sheetck~.sheet ::-webkit-scrollbar,.moresheet .sheet::-webkit-scrollbar{width:10px;height:10px;background:transparent}
dialog.gsheet::-webkit-scrollbar-track,.drawer::-webkit-scrollbar-track,.sheetck~.sheet ::-webkit-scrollbar-track,.moresheet .sheet::-webkit-scrollbar-track{background:transparent;margin:32px 0}
dialog.gsheet::-webkit-scrollbar-thumb,.drawer::-webkit-scrollbar-thumb,.sheetck~.sheet ::-webkit-scrollbar-thumb,.moresheet .sheet::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 14%,transparent);border:3px solid transparent;background-clip:padding-box;border-radius:999px}
dialog.gsheet:hover::-webkit-scrollbar-thumb,.drawer:hover::-webkit-scrollbar-thumb{background-color:color-mix(in srgb,var(--ink) 26%,transparent)}
/* G1d · the page behind a drawer. PHONES (820px and under): it does not move, shrink or turn; it only dims (the scrim, at its
   full strength here because the page no longer fades). COMPUTERS: a very gentle step back (scale .985, opacity .6, no turn),
   the approved "page fades back" look without the book feeling (fully flat on computers too would be the one line
   html.gback .gbl{transform:none}). Either way the page's layers are INERT while a drawer is open (core/glass.php
   glass_sheet_js tip(): nothing behind can be tapped, focused or read); pointer-events:none is the fallback for a browser
   without inert. */
html.gback,html.gback-out{overflow-x:hidden}
html.gback body,html.gback-out body{overflow-x:clip}
.gbl{transform-origin:var(--gbo,50% 40%);transition:transform .32s var(--gios),opacity .32s var(--ease)!important;will-change:transform,opacity} /* design-ok: G1d · the gentle step back on a computer, opacity only under reduced motion */
html.gback-out .gbl{transition:transform .24s var(--gout),opacity .24s var(--ease)!important}
html.gback .gbl{transform:scale(.985)!important;opacity:.6!important;pointer-events:none}
@media(max-width:820px){
  html.gback .gbl{transform:none!important;opacity:1!important}
  .gbl{will-change:auto}
  dialog.gsheet::backdrop{background:rgba(14,21,34,.30)} /* design-ok: the scrim at full strength on a phone (::backdrop cannot read the theme tokens in every browser) */
  :root[data-theme="dark"] dialog.gsheet::backdrop{background:rgba(0,0,0,.55)} /* design-ok: the scrim, dark */
  .scrim,.sheetscrim,.moresheet .scrim{background:var(--scrim)}
}
@media(max-width:820px) and (prefers-color-scheme:dark){ :root:not([data-theme="light"]) dialog.gsheet::backdrop{background:rgba(0,0,0,.55)} } /* design-ok: the scrim, dark */
/* G1d · ONE STACKING ORDER for every surface (the tokens are in core/ui.php): the page, its sticky bars, tips, the scrim,
   the drawer, a question, a toast. A <dialog> drawer sits in the browser's top layer above all of them; these place the CSS-only
   drawers (Career Profile's menu and sheets, the client's More) and everything that floats. */
.scrim,.sheetscrim,.moresheet .scrim{z-index:var(--z-scrim)!important;inset:0;margin:0}   /* the whole screen: a tap anywhere outside the drawer closes it (a label scrim took the form labels' 12px bottom margin, leaving a strip of the page live) */
.drawer,body .sheetck~.sheet,.moresheet .sheet{z-index:var(--z-drawer)!important}
.tipp,.tiph .tipp,.tour,.tiph.on .tipsheetbg{z-index:var(--z-tip)!important}
.gtoast{z-index:var(--z-toast);top:auto;right:auto;margin:0;border:0;overflow:visible}
/* G1d · SDSoft: while new results load, the results fade to 60% (usually under 0.3s); the announcer is for screen readers only */
html.sdsoftw [data-soft-busy]{opacity:.6;transition:opacity .15s var(--ease)}
.sdsay{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* G1d · a page that used to be a drawer (Career Profile's edit pages, the client's Book staff on its own page): the back
   arrow with the words of where it goes */
.cxptop{display:flex;align-items:center;gap:var(--s2,8px);margin:0 0 var(--s2,8px)}
.cxback{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap,44px);padding:0 16px 0 10px;border-radius:999px;background:var(--soft);color:var(--ink);font-weight:600;text-decoration:none}
.cxback:hover{text-decoration:none;background:var(--soft-2)}
.cxback svg{width:20px;height:20px;flex:none}
details.bookpage>summary{display:none}
/* G1d · EVERYTHING LINES UP (owner, 7 Oct 2026): a button inside a bar or a row never carries the public pages' base top
   margin (core/ui.php: button,.btnl{margin-top:12px}, meant for a button under a form field). It pushed the boards' "Build your
   Career Profile" button 6px below "For employers" and "Sign in". tools/alignscan.js checks every row on every page. */
:is(nav,header,.bdtop,.acts,.cacts,.gacts,.bdbtns,.tbacts,.tbrfoot,.bkfoot,.g2facts,.bdhrow,.cxdacts,.jacts,.tq,.atsfilb,.savebar,.bdopts,.optc,.fbar,.g2fbar,.g2fgo)>:is(button,.btnl){margin-block:0}
form.futype{display:inline-flex;align-items:center;margin:0}
/* G1d · a field's label or a tick box inside a centered row keeps no margin above or below (its bottom margin, meant for a
   field stacked in a column, set it 2 to 8px above the button beside it); a card head's right side lines up its own items */
:is(.tsbar,.sgf,.rfrm,.xacts,form.inline,form[style*="display:flex"],.g2fbar,.tbcmd,.bdcmd,.atsbar,.fbar)>:is(label,.chk,span.small){margin-block:0}
.cright>*,.cright form,.chead .cright>*,.cright>.tfilt.g2seg{margin-block:0}
:is(.jdetools,.sheethd,.bdcta,.bdcta.gl)>*{margin-block:0}
.ptag{white-space:nowrap}
/* G1d · a styled select's chosen words sit in the middle of its box (they sat at the top: claude/ADDENDUM-G1d-MODSECURITY-SM1-SAVE.md section 5) */
.gfld select,select{align-items:center;align-content:center}
/* the password eye inside its box: a 44px target, centered on the box */
.pwshow{min-height:44px!important;height:44px!important;top:calc(50% - 22px)!important}
/* the boards' EMS | Nursing & Allied switch: 44px pills (the switch keeps its 48px with 2px of room round them) */
.bd .tbsw{padding:2px}.bd .tbsw a{min-height:44px}
/* G1d · TAP SIZE IN THE OFFICE ON A COMPUTER: the compact office keeps its 36px buttons for the mouse; nothing a person clicks
   is under 32px (a bare quick-date button, a "More" summary, a link chip, a card head that folds, a field) */
@media(min-width:821px){
  :where(html[data-surface="work"]) :where(button,.btn,summary,a.chip,select,input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]),[role="button"]):where(:not(.tipb,.ggrab,.gsx,.gpknat,.lnk)){min-height:32px}   /* a floor only: no specificity, so the office's own sizes (the fields' 44px) win */
  html[data-surface="work"] button.lnk{min-height:32px;display:inline-flex;align-items:center}
}
/* G1d · the compose box's merge-tag buttons ({first_name} ...) and Preview: 32px on a computer (they were 28px, inline) */
.mchips{display:flex;gap:4px;flex-wrap:wrap;margin-top:6px}
.mchips .btn{min-height:32px;font-size:var(--fs-xs);padding:0 10px}
.mchips #cp_prev{margin-left:auto}
/* G1d · a fact that is a sentence (the inbox's "Record: <name> (matched the address)") flows as text, one item in the row */
.rfact span.rfrec{display:inline;min-height:0}
/* G1d · Sections' column heads are narrow: "Added later" wraps under the name instead of being cut */
.rfact .chip[data-wrap-ok],.secgrid .sechd .chip{white-space:normal;height:auto;line-height:1.25;padding-block:2px;text-align:center;max-width:100%}
/* G1d · "Back to sign in" and the other links under the sign-in box: a 44px hit area that moves nothing */
.lgmore a{padding-block:14px;margin-block:-14px}
/* G1d · a lead's Owner picker in its header (was 28px, inline) */
.ownsel{width:auto;min-height:32px;padding:2px 8px;font-size:var(--fs-sm)}
/* G1d · a chip never shrinks to "…" in a row (it keeps its words; the row wraps); a long label in a list cell wraps instead */
.chip{flex-shrink:0;text-overflow:clip}
.chip[data-wrap-ok]{white-space:normal;height:auto;min-height:22px;line-height:1.3;padding-block:2px}
/* G1d · TAP SIZE ON A PHONE (820px and under), every surface: every control is at least 44px tall (r56's rule, now on every page;
   tools/alignscan.js). A link that is the only thing on its line (a name in a list, "Run the self-test") gets a 44px hit area
   from padding, which an inline box draws without moving anything around it. */
@media(max-width:820px){
  /* a FLOOR (no specificity: a control that already asks for more keeps it), then the known small ones raised for sure */
  :where(button,.btn,.btnl,summary,a.chip,button.chip,.g2fchip,a.gpick,label.gpick,.gtok,[role="tab"],[role="button"]):where(:not(.tipb,.ggrab,.gsx,.gpknat)){min-height:44px}
  :where(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.gpknat),select:not(.gpknat)){min-height:44px}
  :is(.btn.sm,.btn.xs,summary.btn,a.chip,button.chip,.g2fchip,.gtok,.rfmore,.sysx,.vbtn,.pwshow,button.lnk,.gmmd,.gmma,.bttl,button:not([class])):not(.tipb):not(.ggrab):not(.gsx){min-height:44px!important}
  :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=range]):not(.gpknat),select:not(.gpknat)){min-height:44px!important}
  :is(nav,.tfilt,.g2vm,[role="tablist"],[role="group"],.vtog,.bdview)>a{min-height:44px!important;display:inline-flex;align-items:center}
  .hdr a.brand{min-height:44px;display:inline-flex;align-items:center}
  /* a plain link (no class: a name in a list, "Run the self-test"): 12px of padding above and below, taken back by the same
     negative margin, so a finger finds 44px and nothing on the page moves (an inline link ignores the margin; its padding
     never moves a line) */
  a:is(:not([class]),.small,.ok,.warn,.bad,.bttl,.lnk){padding-block:14px;margin-block:-14px}
  :is(nav,.tfilt,.g2vm,[role="tablist"],[role="group"])>a:is(:not([class]),.small,.ok,.warn,.bad){padding-block:0;margin-block:0}
  /* NL1.1 bug: a link that is itself a block row (Today's "Finish setting up" list) is already 44px; the plain link's negative
     margin pulled each row 28px into the next one (the rows overlapped on a phone and a tablet, both looks) */
  .setupc li a{margin-block:0}
  .srow{flex-wrap:wrap}
  a.mgnum,.hghd a{min-height:44px;display:inline-flex;align-items:center}
}
.bookpg>h2{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
/* pickers: a rounded token (label, value, chevron) that opens a drawer of rounded rows; never a native drop-down on a bar */
.gpknat{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;margin:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden}
.gtok{display:inline-flex;align-items:center;gap:8px;min-width:0;max-width:100%;height:var(--tap);padding:0 12px 0 14px;border:0;border-radius:16px;background:var(--soft);color:var(--ink);font:inherit;font-size:var(--fs);cursor:pointer;text-align:left;
  transition:background .2s var(--ease),transform .3s var(--spring)}
.gtok:hover{background:var(--soft-2)}
.gtok:active{transform:scale(.96)}
.gtok .gtokl{flex:none;font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.gtok .gtokv{flex:1 1 auto;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gtok svg{flex:none;width:16px;height:16px;color:var(--muted)}
.gpk{display:flex;flex-direction:column;gap:10px}
.gpkq{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:10px;height:50px;padding:0 16px;margin:0;border-radius:18px;background:var(--glass-2);color:var(--muted);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:inset 0 1px 0 var(--sheen),0 10px 24px -16px var(--shade-2)}
.gpkq svg{flex:none;width:18px;height:18px}
.gpkq input,.gpkq input:focus{flex:1;min-width:0;height:100%;border:0;background:transparent;box-shadow:none;padding:0;font:inherit;font-size:16px;color:var(--ink)} /* design-ok: 16px keeps a phone from zooming into the type box */
.gpkl{display:flex;flex-direction:column;gap:6px}
.gpkl .garow{min-height:50px}
.gpkl .garow.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;box-shadow:none}
.gpkl .garow .gpkck{flex:none;width:18px;height:18px;color:var(--on-accent-soft)}
.gpkl .garow mark{background:transparent;color:var(--accent);font-weight:700}
.gpkl .garow small{display:inline;margin-left:8px}
.gpkl .gpkg{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:10px 6px 2px}
.gpkno{color:var(--muted);padding:6px 4px}
.gpkn{display:inline;margin-left:8px;font-size:var(--fs-xs,12.5px);font-weight:400;color:var(--muted)}   /* G3b · a count beside an option ("3 jobs") */
/* JM1 · PHONE PAGES: NO BROWSER SCROLL BAR (owner, 7 Oct 2026, the mockup review, BRIEF-CD1 section 14 item 2). A slim rail drawn
   inside the layout on the right, between the top bar and the bottom bar, that moves with the page: one pseudo-element of the
   root (no markup, every surface), its thumb a background layer moved by the page's own scroll timeline (no script, no loop).
   Shown only where the browser can tie it to the scroll (@supports) AND only while the page can scroll: the animation is what
   makes it visible, and a page with nothing to scroll has an inactive timeline, so the rail stays at opacity 0. Drawers keep
   their own thin bar (G1c). */
@media(max-width:820px){
  html{scrollbar-width:none}
  html::-webkit-scrollbar,body::-webkit-scrollbar{display:none;width:0;height:0}
  @supports (animation-timeline:scroll()){
    html::after{content:"";position:fixed;z-index:var(--z-bar);right:3px;width:4px;border-radius:999px;pointer-events:none;
      top:calc(var(--topbar,60px) + 8px);bottom:calc(var(--tabbar,0px) + 10px);opacity:0;
      background:linear-gradient(color-mix(in srgb,var(--ink) 28%,transparent),color-mix(in srgb,var(--ink) 28%,transparent)) 0 0/100% 24% no-repeat,color-mix(in srgb,var(--ink) 7%,transparent); /* design-ok: a flat color layer (the rail's thumb), not a gradient */
      animation:sdRail linear both;animation-timeline:scroll(root block)}
    @keyframes sdRail{from{opacity:1;background-position:0 0,0 0}to{opacity:1;background-position:0 100%,0 0}}
  }
}
@media(prefers-reduced-motion:reduce){
  dialog.gsheet,dialog.gsheet.top,dialog.gsheet.from-top,dialog.gsheet.from-right,dialog.gsheet.from-left{animation:gdFadeIn .15s linear both!important;transform:none!important}
  dialog.gsheet.out,dialog.gsheet.top.out,dialog.gsheet.from-top.out,dialog.gsheet.from-right.out,dialog.gsheet.from-left.out{animation:gdFadeOut .15s linear both!important}
  dialog.gsheet::backdrop{animation:gdFadeIn .15s linear both!important}
  dialog.gsheet.gsaway{animation:none!important}
  .gbl,html.gback-out .gbl{transition:opacity .15s linear!important}
  html[class*="gback-"] .gbl{transform:none!important}
}.npair{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:0 var(--s3);align-items:start}.npair>*{min-width:0}.npair input{width:100%}@media (max-width:820px),(pointer:coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]):not([type=color]):not([type=hidden]):not([type=submit]):not([type=button]):not([type=reset]):not([type=image]),select,textarea,[contenteditable="true"],[contenteditable=""]{font-size:max(16px,1em)!important}}.sdart,.logoplate,.sdm,.bmark{max-width:100%;min-width:0}.sdart img,.logoplate img,.sdm img,.sdm svg,.lgart img{max-width:100%;max-height:100%;object-fit:contain}.sdm>.sdart{width:72%;height:72%;justify-content:center}.sdm>.sdart img{width:100%!important;height:100%!important}@media (max-width:520px){html .btn,html .btnl{white-space:normal;text-align:center;max-width:100%}}.ratext,.ralines li,.bkterms .psm,.bkterms>span,label.ratick,.consent label.opt,.consentq,.pnote,.declprev,.mustread{font-size:var(--fs-body)!important}/* ======================================================================
   H2 · office console. Tokens come from core/ui.php; this is the chrome
   (header, sidebar, tab bar) and the components the pages already use.
   ====================================================================== */
body.compact{ --pad:12px; --gap:10px; }

/* ---------- header ---------- */
.hdr{
  position:fixed;top:0;left:0;right:0;height:calc(var(--hh) + var(--sat));padding-top:var(--sat);z-index:40;
  display:flex;align-items:center;gap:6px;padding-left:10px;padding-right:10px;
  background:var(--hdr-bg);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);
  border-bottom:1px solid var(--hair);
}
.brand{display:flex;align-items:center;gap:9px;color:var(--ink);font-weight:700;padding:4px 6px 4px 2px;border-radius:var(--r-sm)}
.brand:hover{text-decoration:none;background:var(--surface-2)}
.bmark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--navy);color:var(--on-navy);font-size:var(--fs-xs);letter-spacing:.04em;font-weight:700}
.bname{font-size:var(--fs);letter-spacing:-.01em}
.hsp{flex:1}
.ibtn{width:40px;height:40px;border-radius:10px;border:0;background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;position:relative;flex:none}
.ibtn:hover{background:var(--surface-2)}
.ic{width:20px;height:20px;display:block}
.recentd{position:relative}
/* R16 · the avatar menu */
.uava{padding:0}.uava .av{pointer-events:none}
.umenup{width:270px;padding:6px}
.umh{display:flex;flex-direction:column;padding:8px 10px 10px;border-bottom:1px solid var(--line-s);margin:0 0 6px}
.umh b{font-size:var(--fs);font-weight:600}.umh em{font-style:normal;font-size:var(--fs-xs);color:var(--muted)}
.recentp.umenup a,.umenup .umi,.umenup .umrow{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 10px;border-radius:var(--r-sm);font:inherit;font-size:var(--fs);color:var(--ink);width:100%;border:0;background:transparent;cursor:pointer;text-align:left}
.recentp.umenup a:hover,.umenup .umi:hover{background:var(--surface-2);text-decoration:none}
.umenup .ic{width:18px;height:18px;color:var(--muted);flex:none}
.umrow .thmb{margin-left:auto;width:34px;height:34px}
.umsep{height:1px;background:var(--divider);margin:6px 0}
.recentd summary{list-style:none}
.recentd summary::-webkit-details-marker{display:none}
.recentd .pdot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--navy)}
.recentp{position:absolute;right:0;top:46px;width:min(340px,calc(100vw - 24px));max-height:70vh;overflow:auto;
  background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:6px;z-index:60}
.recentp .rh{font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:8px 8px 4px;font-weight:600}
.recentp a{display:flex;align-items:baseline;gap:8px;padding:8px 10px;border-radius:var(--r-sm);color:var(--ink);font-size:var(--fs);text-decoration:none;min-width:0;overflow:hidden}
.recentp a .rl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recentp a:hover{background:var(--surface-2)}
.recentp .rk{font-size:var(--fs-2xs);color:var(--faint);min-width:64px;flex:none}
.recentp .rt{margin-left:auto;font-size:var(--fs-2xs);color:var(--faint);flex:none}
@media(max-width:600px){ .recentd{position:static} .recentp{position:fixed;left:10px;right:10px;top:calc(var(--hh) + var(--sat) + 6px);width:auto} }
.rchip{display:inline-flex;flex-direction:column;gap:2px;padding:9px 12px;border:1px solid var(--line);border-radius:var(--r);color:var(--ink);text-decoration:none;font-size:var(--fs);max-width:100%;background:var(--surface)}
.rchip span{font-size:var(--fs-2xs);color:var(--faint)}
.rchip:hover{background:var(--surface-2);text-decoration:none}
.pinf{display:inline}
.bell .dot{position:absolute;top:5px;right:4px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--bad);color:var(--on-bad);font-size:var(--fs-2xs);font-style:normal;display:grid;place-items:center;font-weight:700;border:2px solid var(--surface)}
/* DR0 · GATE 14's first find: display:grid above beat the hidden attribute, so an empty dot sat on the bell on every office page with nothing new */
.bell .dot[hidden]{display:none}
.ck{display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;cursor:pointer;border:1px solid var(--line);border-radius:var(--pill);background:var(--surface-2);color:var(--muted);font:inherit;font-size:var(--fs-sm);min-width:220px}
.ck:hover{border-color:var(--faint)}
.ck kbd{margin-left:auto;border:1px solid var(--line);border-radius:5px;padding:1px 5px;background:var(--surface);color:var(--faint);font-size:var(--fs-2xs)}
.ck .ic{width:16px;height:16px}
.navtog{display:grid}

/* ---------- sidebar (desktop: rail + flyouts; collapsible to icons) ---------- */
.side{position:fixed;top:calc(var(--hh) + var(--sat));bottom:0;left:0;width:var(--sw);z-index:30;
  background:var(--surface);border-right:1px solid var(--hair);padding:12px 10px;display:flex;flex-direction:column;gap:2px;overflow:visible}
.scatw{position:relative}
.ssep{height:1px;background:var(--divider);margin:8px 6px}
.sectabs{display:flex;gap:4px;margin:-6px 0 var(--gap);border-bottom:1px solid var(--line)}
.sectabs a{padding:10px 12px;color:var(--muted);font-weight:600;font-size:var(--fs);text-decoration:none}
.sectabs a:hover{color:var(--ink);text-decoration:none}
.sectabs a.on{color:var(--navy);border-bottom-color:var(--navy)}
@media(min-width:821px){.sectabs{flex-wrap:wrap;overflow:visible;mask-image:none;-webkit-mask-image:none}}
.scat,.snav{display:flex;align-items:center;gap:11px;min-height:40px;padding:0 10px;border-radius:10px;color:var(--ink);font-size:var(--fs);position:relative;
  border:0;background:transparent;width:100%;text-align:left;cursor:pointer;font-family:inherit;font-weight:500}
.scat:hover,.snav:hover{background:var(--surface-2);text-decoration:none}
.scat .ic,.snav .ic{color:var(--muted);flex:none}
.scat.on,.snav.on{background:var(--navy-l);color:var(--navy);font-weight:600}
.scat.on .ic,.snav.on .ic{color:var(--navy)}
.scar{margin-left:auto;display:grid;place-items:center;color:var(--faint);flex:none;transition:transform .15s ease}
.scar .ic{width:15px;height:15px}
.scatw:hover>.scat .scar{color:var(--muted)}
.sflyo{position:absolute;left:100%;top:-6px;margin-left:8px;min-width:248px;z-index:45;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);
  box-shadow:var(--sh-lg);padding:8px;max-height:calc(100vh - var(--hh) - 24px);overflow-y:auto;opacity:0;visibility:hidden;transform:translateX(-5px);
  transition:opacity .13s ease,transform .13s ease,visibility 0s .13s}
.sflyo::before{content:"";position:absolute;left:-10px;top:0;bottom:0;width:10px}
.sflyo.up{top:auto;bottom:-6px}
.scatw:hover>.sflyo,.scatw:focus-within>.sflyo{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.sfh{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--faint);font-weight:600;padding:4px 10px 2px}
.sfc{font-size:var(--fs-xs);color:var(--muted);margin:0 0 6px;padding:2px 10px 0;line-height:1.45}
.sflyo .snav{min-height:36px;font-size:var(--fs)}
.soon{font-style:normal;margin-left:auto;font-size:var(--fs-2xs);color:var(--faint);border:1px solid var(--line);border-radius:20px;padding:1px 6px}
.sfoot{margin-top:auto;padding-top:10px;border-top:1px solid var(--line-s)}
.sbuild{font-size:var(--fs-2xs);color:var(--faint);padding:8px 10px 2px}
.suser{display:flex;align-items:center;gap:10px;padding:8px 6px 10px;min-width:0}
.suser .sut{display:flex;flex-direction:column;min-width:0;flex:1;line-height:1.25}
.suser b{font-size:var(--fs);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.suser em{font-style:normal;font-size:var(--fs-2xs);color:var(--muted)}
body.navmin .suser .sut,body.navmin .suser .ibtn{display:none}
body.navmin .suser{justify-content:center;padding:8px 0}
body.navmin .side{width:var(--swc);padding:12px 12px}
body.navmin .scat span,body.navmin .scar,body.navmin .sbuild,body.navmin .scat .soon,body.navmin #densTog span{display:none}
body.navmin .scat,body.navmin #densTog{justify-content:center;padding:0;width:48px;height:44px}
body.navmin .main{margin-left:var(--swc)}

/* ---------- wayfinding + keyboard ---------- */
.crumb{font-size:var(--fs-sm);color:var(--muted);margin:0 0 6px;font-weight:500}
.crumb span{color:var(--faint)}
.crumb span::after,.crumb a::after{content:"›";margin:0 6px;color:var(--faint)}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--navy)}
.skip{position:absolute;left:-9999px;top:0;z-index:100;background:var(--navy);color:var(--on-navy);padding:10px 16px;border-radius:0 0 var(--r) 0;font-weight:700}
.skip:focus{left:0;text-decoration:none}

/* ---------- main ---------- */
.main{margin-left:var(--sw);padding:calc(var(--hh) + var(--sat) + var(--pad)) var(--pad) 80px;max-width:1440px}
.ptitle{margin:0 0 var(--gap);display:flex;flex-direction:column;gap:2px}
.ptitle .sub{color:var(--muted);margin:4px 0 0;max-width:70ch}

/* ---------- cards ---------- */
/* R6 · a card is a raised surface now, not a boxed one. The hard grey
   outline round every card is what made a long page read as a wall; a
   soft shadow gives the same separation and disappears when you are not
   looking for it. */
/* R16 · flat sections: a thin line instead of a shadow, so a page reads as one surface with parts rather than a stack of boxes */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:none;padding:calc(var(--pad) - 4px);margin:0 0 var(--gap)}
/* R6 · the card header now reads as a chapter heading: a short accent
   rule, a bigger title, and real air under it. On a page of eight cards
   this is the difference between scanning and reading. */
.chead{display:flex;align-items:center;gap:12px;margin:0 0 14px;flex-wrap:wrap;position:relative}
.chead h2{flex:1 1 12rem;min-width:0;font-size:var(--fs-h2);letter-spacing:-.015em}
.chead .csub{flex:1 0 100%;order:3;margin:-6px 0 0;font-size:var(--fs-sm);line-height:1.45;color:var(--muted)}
.cright{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid{display:grid;gap:var(--gap)}
.grid>*,.rcols>*,.two2>*{min-width:0}
.g2{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}
.g3{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}
.g4{grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr))}

/* ---------- stats ---------- */
.statc{display:block;padding:2px 0;color:var(--ink)}
.sl2{font-size:var(--fs-2xs);color:var(--faint);margin-top:2px;line-height:1.35}
.statc:hover{text-decoration:none}
.sv{font-size:var(--fs-page);font-weight:700;letter-spacing:-.02em;line-height:1.2;font-variant-numeric:tabular-nums}
.sv.ok{color:var(--ok)} .sv.warn{color:var(--warn)} .sv.bad{color:var(--bad)}
.sl{font-size:var(--fs-xs);color:var(--muted);margin-top:2px}

/* ---------- chips ---------- */
/* R7T.1 · a chip already had max-width:100%, but with white-space:nowrap and
 * nothing allowed to shrink it, a long label (an audit line such as "Email
 * refused (recipient unsubscribed)") pushed past a 320px screen. It now
 * clips with an ellipsis instead, and carries its full text in the title
 * attribute where the markup sets one. Found by the edge scan. */
.chip{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 9px;border-radius:var(--pill);font-size:var(--fs-xs);font-weight:500;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);white-space:nowrap;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis}
.chip.ok{background:var(--ok-bg);color:var(--ok);border-color:transparent}
.chip.warn{background:var(--warn-bg);color:var(--warn);border-color:transparent}
.chip.bad{background:var(--bad-bg);color:var(--bad);border-color:transparent}
.chip.info{background:var(--info-bg);color:var(--info);border-color:transparent}

/* ---------- forms ---------- */
label{display:block;font-size:var(--fs-sm);color:var(--muted);font-weight:500;margin:0 0 4px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],
input[type=date],input[type=time],input[type=search],input[type=datetime-local],select,textarea{
  width:100%;min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);color:var(--ink);
  font:inherit;font-size:var(--fs-lg);-webkit-appearance:none;appearance:none;transition:border-color .12s,box-shadow .12s}
select{background-image:var(--chev-img);background-repeat:no-repeat;background-position:right 10px center;padding-right:30px}
select[multiple]{background-image:none;padding-right:12px}
input[type=checkbox],input[type=radio]{width:18px;height:18px;accent-color:var(--navy);margin:0 4px 0 0;vertical-align:-3px}
@media(min-width:700px){
  input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],
  input[type=date],input[type=time],input[type=search],input[type=datetime-local],select,textarea{font-size:var(--fs)}
}
input:focus,select:focus,textarea:focus{outline:none;box-shadow:0 0 0 3px rgba(13,67,144,.14)}
textarea{min-height:90px;resize:vertical;line-height:1.5}
.frow{margin:0 0 12px}
.frow2{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
.frow2[hidden]{display:none}   /* DR0 · GATE 14: Setup's "Another mail provider" fields showed with Gmail picked (display:grid beat hidden) */
.hint{font-size:var(--fs-xs);color:var(--muted);margin:4px 0 0}
.chk{display:flex;align-items:flex-start;gap:8px;font-size:var(--fs);color:var(--ink);margin:0 0 8px;font-weight:400}
.chk input{width:18px;height:18px;min-height:0;margin-top:2px;flex:none}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;
  background:var(--navy);color:var(--on-navy);font:inherit;font-weight:600;cursor:pointer;line-height:1;white-space:nowrap;transition:background .12s,transform .06s}
.btn:hover{background:var(--navy-d);text-decoration:none;color:var(--on-navy)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:var(--surface);color:var(--ink);border-color:var(--line)}
.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}
.btn.teal{background:var(--teal-d)} .btn.teal:hover{background:var(--teal-d);filter:brightness(.92)}
.btn.ghost.on{background:var(--navy-l);color:var(--navy);border-color:var(--navy-l);font-weight:600}
.btn.danger{background:var(--bad)} .btn.danger:hover{background:var(--bad);filter:brightness(.9)}
.btn.ghost.danger{background:transparent;color:var(--bad);border-color:var(--bad)} .btn.ghost.danger:hover{background:var(--bad-bg);color:var(--bad);filter:none}   /* R59e · a ghost red button (Delete conversation, Redact) was red text-on-red: ink on the danger fill */
.btn.sm{min-height:34px;padding:0 12px;font-size:var(--fs-sm);border-radius:9px}
.btn[disabled]{opacity:.5;cursor:not-allowed}

/* ---------- command palette ---------- */
.palov{position:fixed;inset:0;background:rgba(11,18,32,.5);z-index:200;display:none;padding:8vh 16px 0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.palov.open{display:block}
.pal{max-width:580px;margin:0 auto;background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-lg);overflow:hidden}
.pal input{width:100%;border:0;border-bottom:1px solid var(--line);font:inherit;font-size:var(--fs-lg);padding:16px 18px;outline:none;box-sizing:border-box;border-radius:0}
.pal input:focus{box-shadow:none}
.palrs{max-height:52vh;overflow-y:auto;padding:6px}
.palg{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--faint);padding:8px 10px 4px;font-weight:600}
.palit{display:block;padding:9px 12px;border-radius:10px;text-decoration:none;color:inherit}
.palit strong{display:block;font-weight:600}
.palit span{display:block;font-size:var(--fs-xs);color:var(--muted)}
.palit:hover,.palit.on{background:var(--navy-l);text-decoration:none}
.palrow{border-radius:10px}
.palacts{display:flex;flex-wrap:wrap;gap:6px;padding:0 10px 8px}
.palact{font:inherit;font-size:var(--fs-xs);padding:4px 9px 4px 6px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.palact:hover{background:var(--navy-l);}
.palact kbd{font-size:var(--fs-2xs);border:1px solid var(--line);border-radius:4px;padding:0 4px;color:var(--faint);background:var(--bg)}
.palform{margin:0 10px 10px;padding:8px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2)}
.palopts{display:flex;flex-wrap:wrap;gap:10px;font-size:var(--fs-sm);margin-bottom:6px}
.palopts label{display:inline-flex;align-items:center;gap:4px}
.palopts input{width:auto;min-height:0;margin:0}
.palline{display:flex;gap:6px}
.palline input{flex:1;min-width:0;font:inherit;font-size:var(--fs-sm);padding:6px 8px;border:1px solid var(--line);border-radius:8px}
.palline button{font:inherit;font-size:var(--fs-sm);padding:6px 10px;border:0;border-radius:8px;background:var(--navy);color:var(--on-navy);cursor:pointer}
.palline .palcancel{background:transparent;color:var(--muted);border-color:var(--line)}
.paltoast{margin:0 10px 10px;font-size:var(--fs-sm);padding:5px 8px;border-radius:8px}
.paltoast.ok{background:var(--ok-bg);color:var(--ok)}.paltoast.bad{background:var(--bad-bg);color:var(--bad)}
.palhint{padding:14px;color:var(--faint);font-size:var(--fs-sm);text-align:center}

/* ---------- bell panel ---------- */
.npanel{position:fixed;top:calc(var(--hh) + var(--sat) + 6px);right:12px;width:min(360px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--sh-lg);z-index:190;display:none;max-height:60vh;overflow-y:auto;padding:6px}
.npanel.open{display:block}
.nph{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;border-bottom:1px solid var(--line-s)}
.nph button{border:0;background:none;color:var(--navy);cursor:pointer;font:inherit;font-size:var(--fs-xs);font-weight:600}
.npit{display:block;padding:10px;border-radius:10px;text-decoration:none;color:inherit;border-bottom:1px solid var(--line-s)}
.npit:last-child{border-bottom:0}
.npit.unread{background:var(--navy-xl)}
.npit strong{display:block;font-weight:600;font-size:var(--fs-sm)}
.npit span{display:block;font-size:var(--fs-xs);color:var(--muted)}
.npit em{display:block;font-style:normal;font-size:var(--fs-2xs);color:var(--faint);margin-top:2px}
.npit:hover{background:var(--surface-2);text-decoration:none}
.npact{padding:0 10px 10px;border-bottom:1px solid var(--line-s)}.npact .btn{min-height:var(--tap);display:inline-flex;align-items:center}   /* R59d */

/* ---------- timeline ---------- */
.tline{display:flex;flex-direction:column;gap:0;position:relative;padding-left:4px}
.tline::before{content:"";position:absolute;left:15px;top:14px;bottom:14px;width:2px;background:var(--divider)}
.titem{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-s);position:relative}
.titem:last-child{border-bottom:0}
.titem.tfhide,tr.tfhide{display:none}
.titem:target{background:var(--navy-l);border-radius:var(--r);scroll-margin-top:calc(var(--hh) + var(--sat) + 70px)}   /* R47 · the note a mention points at */
.tbody{min-width:0;flex:1}
.tdot{width:24px;height:24px;border-radius:99px;background:var(--faint);color:var(--on-navy);margin-top:2px;flex:0 0 24px;display:grid;place-items:center;font-size:var(--fs-xs);line-height:1;position:relative;z-index:1}
.tfilt{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 10px}
.tfilt .btn{min-height:32px;padding:0 11px;font-size:var(--fs-sm);border-radius:var(--pill)}
.tcomp{margin:0 0 12px}
.tcomp summary{cursor:pointer;color:var(--navy);font-weight:500;font-size:var(--fs);list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:36px}
.tcomp summary::-webkit-details-marker{display:none}
.tcomp summary::before{content:"+";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--navy-l);font-weight:700}
.tcomp[open] summary::before{content:"–"}
.tcomp .tcbody{margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2)}
.titem.mail .tdot{background:var(--navy)}.titem.sms .tdot{background:var(--teal)}
.titem.fu .tdot{background:var(--warn)}.titem.ok .tdot{background:var(--ok)}
.titem.bad .tdot{background:var(--bad)}.titem.seq .tdot{background:var(--info)}
.tth{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ttx{font-size:var(--fs-sm);color:var(--muted);margin-top:2px;white-space:normal}
.abar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 var(--gap)}
.abar .btn{white-space:nowrap}
.abar form{display:inline-flex;gap:6px;align-items:center;margin:0}
.abar select,.abar input{font:inherit;padding:7px 9px;border:1px solid var(--line);border-radius:10px}

/* ---------- tables ---------- */
.tblwrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}
.tbl{width:100%;border-collapse:collapse;font-size:var(--fs)}
.tbl th{text-align:left;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:600;padding:0 10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.tbl td{padding:11px 10px;border-bottom:1px solid var(--line-s);vertical-align:middle}
.tbl tr:last-child td{border-bottom:0}
.tbl tr:hover td{background:var(--surface-2)}
.tscroll{overflow-x:auto;margin:0 calc(var(--pad) * -1);padding:0 var(--pad)}

/* ---------- notes ---------- */
/* ---------------- R6 · notes, tips and the hover hint ----------------
 * A note that never goes away stops being read after the second day and
 * starts being visual noise on the fourth. So a TEACHING note is now a
 * card you can close, it retires itself after ten days on that screen,
 * and what is left behind is a small marker that gives the same words
 * back on hover. A WARNING is not a tip and never does any of this.  */
/* R6 · color is rationed. A WARNING should stop you, so it keeps its
   tint. An explanation should not compete with the work, so info notes
   are now a quiet left rule and muted text — permanent where they have
   to be, without being the loudest thing on the screen. */
.note{border-radius:var(--r);padding:12px 15px;margin:0 0 var(--gap);font-size:var(--fs);border:1px solid transparent;line-height:1.55}
.note.info{background:var(--surface-2);color:var(--muted);border:0;border-radius:var(--r);padding:10px 12px}
.note.info a{color:var(--navy)}
.note.ok{background:var(--ok-bg);color:var(--ok)}
.note.warn{background:var(--warn-bg);color:var(--warn)}
.note.bad{background:var(--bad-bg);color:var(--bad)}
.note.quiet{background:var(--surface-2);color:var(--muted);border-color:var(--line)}
.empty{text-align:center;color:var(--muted);padding:32px 16px}
.empty .ic{width:28px;height:28px;color:var(--faint);margin:0 auto 8px}
.empty h3{font-size:var(--fs);margin:0 0 6px;color:var(--ink)}
.empty p{margin:0 0 14px;line-height:1.55;max-width:46ch;margin-left:auto;margin-right:auto}
.empty .emptyi{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;margin:0 auto 12px;background:var(--navy-l);color:var(--navy)}
.empty.nomatch .emptyi{background:var(--surface-2);color:var(--muted)}
.empty .emptyi .ic{width:21px;height:21px;margin:0;color:inherit}
.emptya{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}

/* ---------- build refresh pill / stamp ---------- */
.updbar{position:fixed;left:50%;bottom:calc(var(--tabh) + var(--sab) + 12px);transform:translateX(-50%);z-index:60;background:var(--ink);color:var(--surface);border-radius:var(--pill);padding:9px 16px;font-size:var(--fs-sm);box-shadow:var(--sh-lg)}
.rstamp.insb{position:static;display:inline-block;margin:4px 10px 0;box-shadow:none}
.rstamp{position:fixed;right:8px;bottom:6px;font-size:var(--fs-2xs);color:var(--faint);z-index:10;background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:3px 9px;box-shadow:var(--sh);pointer-events:none}

/* ---------- record header ---------- */
.rhead{position:relative;z-index:25;background:var(--bg);margin:calc(var(--gap) * -1) 0 var(--gap);padding:10px 0 10px;border-bottom:1px solid var(--line)}   /* X2 · the header scrolls; the tab bar below it sticks */
/* R7 · the tab bar used to sit 4px under the last row of facts, so it read as
 * one more row of the same grid. It now has its own air above it. */
.rhead.tabbed{border-bottom:0;margin-bottom:0;padding-bottom:16px}
/* X2 · record tabs: sticky under the header on desktop, a scrolling rail on a phone */
.rtabs{position:sticky;top:calc(var(--hh) + var(--sat));z-index:24;background:var(--bg);margin:0 0 var(--gap);border-bottom:1px solid var(--line)}
.rtabs-i{display:flex;gap:2px;mask-image:none;-webkit-mask-image:none;padding:0}
.rtabs a{display:inline-flex;align-items:center;gap:6px;padding:10px 9px;font-size:var(--fs);font-weight:500;color:var(--muted);white-space:nowrap;text-decoration:none;min-height:var(--tap)}
.rtabs a:hover{color:var(--ink);text-decoration:none}
.rtabs a.on{color:var(--navy);border-bottom-color:var(--navy);font-weight:600}
/* R18 · the tabs past six */
@media(min-width:821px){.rtabs-i{overflow:visible}}
@media(min-width:821px){.rtabs-i{flex-wrap:wrap}}   /* R23 · a narrow window wraps the tabs instead of pushing the page sideways · R58 · on any computer width: the tab text moved from 13.5px to --fs (14.5px) and a long set of tabs ran 3px past a 1280 screen (r49_page); wrapping is the fallback, the 9px side padding keeps the usual set on one line (nine tabs for a recruiter: 939px of a 960px column) */
.carddet{scroll-margin-top:calc(var(--hh) + var(--sat) + 64px)}
.rtmore{position:relative;display:inline-flex}
.rtmore summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:4px;padding:10px 12px;font-size:var(--fs);font-weight:500;color:var(--muted)}
.rtmore summary::-webkit-details-marker{display:none}
.rtmore summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-left:4px}
.rtmore summary:hover{color:var(--ink)}
.rtmorep{position:absolute;top:100%;right:0;z-index:40;min-width:200px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);padding:6px;display:flex;flex-direction:column}
.rtmorep a{border:0!important;margin:0!important;border-radius:var(--r-sm);padding:9px 10px!important}
.rtmorep a:hover{background:var(--surface-2)}
/* R18 · on a wide screen the extra facts sit in a panel beside the record, not behind "+N more" */
.rlay{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:0 var(--gap);align-items:start}
.rlaycol{min-width:0}
.rside{position:sticky;top:calc(var(--hh) + var(--sat) + 60px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;margin:0 0 var(--gap)}
.rside h2{font-size:var(--fs-sm);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0}
.rsideh{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 6px}
.rsidee{font-size:var(--fs-sm);font-weight:600;padding:4px 8px;border-radius:var(--r-sm)}
.rsidee:hover{background:var(--surface-2);text-decoration:none}
.rfedit{flex-basis:100%;margin-top:4px}
/* R23 · the side-by-side layout is decided once when the page loads; if the
   window is then made narrower it stacks instead of squeezing both columns */
@media(max-width:1179px){.rlay{display:block}.rside{position:static}}
.rside .rfacts{display:flex;flex-direction:column;align-items:stretch;gap:0;margin:0;background:none;border:0;padding:0}
.rside .rfact{width:100%}
.rside .rfact{flex-direction:row;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 0;border-top:1px solid var(--line-s)}
.rside .rfact:first-child{border-top:0}
.rside .rfact b{flex:none;max-width:45%;padding-top:2px}
.rside .rfact span{justify-content:flex-end;text-align:right}
body.rsideon .rfmore{display:none!important}
.rtn{font-size:var(--fs-2xs);font-weight:700;line-height:1;padding:3px 7px;border-radius:var(--pill);background:var(--surface-2);color:var(--muted)}
.rtn.warn{background:var(--warn-bg);color:var(--warn)}.rtn.bad{background:var(--bad-bg);color:var(--bad)}.rtn.ok{background:var(--ok-bg);color:var(--ok)}.rtn.info{background:var(--navy-l);color:var(--navy)}
.rsub{margin:calc(var(--gap) * -1 + 4px) 0 var(--gap)}
.carddet{margin:0 0 var(--gap)}.carddet:not([open]){margin:0}.carddet:not([open])>summary{display:none}.carddet>summary{list-style:none;display:inline-flex;cursor:pointer;margin-bottom:8px}.carddet>summary::-webkit-details-marker{display:none}.carddet[open]>summary{margin-bottom:10px}
.rsub .chip b{margin-left:4px}
/* R28 · the current sub-view reads as current (it looked like its neighbour) */
.rsub .chip{text-decoration:none}.rsub .chip.on{background:var(--navy-l);color:var(--navy);font-weight:600}
/* R7 · `.rhead.compact` used to hide the whole facts strip and was dead: the
 * density control puts `compact` on <body>, never on `.rhead`, so nothing has
 * ever matched it. The two-tier strip is the real answer; the rule is gone
 * rather than left as a lead that goes nowhere. */
.rtop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rback{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;font-weight:500;display:inline-flex;align-items:center;min-height:var(--tap)}
.racts{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.racts form{margin:0;display:inline}
.rmore{position:relative}
.rmore summary{list-style:none;cursor:pointer}
.rmore summary::-webkit-details-marker{display:none}
/* R7 · ONE text origin down the whole panel. A .btn is bordered and a
 * <summary> is not, so identical padding put their text 1px apart and their
 * own padding put it 8px apart on top of that. --rmx is the inset every item
 * measures from; the button subtracts its border, the summary does not. */
.rmorep{--rmx:10px;position:absolute;right:0;top:40px;z-index:70;min-width:260px;max-width:min(360px,calc(100vw - 24px));background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--sh-lg);padding:6px}
.rmorep>*{display:block;margin:0 0 4px}
.rmorep>*:last-child{margin-bottom:0}
.rmorep form{display:block}
.rmorep .btn{width:100%;justify-content:flex-start;text-align:left;padding-left:calc(var(--rmx) - 1px);padding-right:calc(var(--rmx) - 1px)}
/* a section heading looks like a heading, not like an unstyled item */
.rmorep details{border-top:1px solid var(--hair);margin-top:6px;padding-top:6px}
.rmorep details:first-child{border-top:0;margin-top:0;padding-top:0}
.rmorep details summary{cursor:pointer;font-size:var(--fs-2xs);font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:6px var(--rmx);border-radius:6px;display:flex;align-items:center;gap:6px;min-height:var(--tap)}
.rmorep details summary::marker,.rmorep details summary::-webkit-details-marker{display:none;content:''}
.rmorep details summary::after{content:'';margin-left:auto;width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);transition:transform .12s}
.rmorep details[open] summary::after{transform:rotate(-135deg)}
.rmorep details summary:hover{background:var(--surface-2);color:var(--ink)}
.rmorep details>div{padding:2px var(--rmx) 8px}
.rfacts{display:flex;gap:14px 24px;flex-wrap:wrap;margin-top:10px;align-items:center}
/* R7 · two tiers. The primaries and the toggle are one row; the rest is a
 * second row that starts closed and remembers itself per person. */
.rfrest{margin-top:12px;padding-top:12px;border-top:1px dashed var(--hair)}
.rfrest[hidden]{display:none}
.rfmore{display:inline-flex;align-items:center;gap:6px;margin-left:auto;background:var(--surface-2);color:var(--muted);border:1px solid var(--line);border-radius:var(--pill);
        font:inherit;font-size:var(--fs-sm);font-weight:500;padding:0 12px;min-height:32px;cursor:pointer;white-space:nowrap}
.rfmore:hover{background:var(--surface);color:var(--ink);border-color:var(--muted)}
.rfmore:focus-visible{outline:2px solid var(--ring);outline-offset:2px}
.rfmore .rfchev{transition:transform .12s}
.rfmore[aria-expanded="true"] .rfchev{transform:rotate(180deg)}
@media(max-width:640px){ .rfmore{margin-left:0} }
.ravatar{flex:none}
.av{display:inline-grid;place-items:center;border-radius:50%;color:var(--paper);font-weight:700;letter-spacing:.02em;overflow:hidden;flex:none;vertical-align:middle;line-height:1}
.av img{width:100%;height:100%;object-fit:cover;display:block}
.av.sm{font-size:var(--fs-2xs)}
.whoav{display:flex;gap:10px;align-items:flex-start}
.whoav>.av{margin-top:2px}
.rfact{display:flex;flex-direction:column;gap:2px;min-width:0}
.rfact b{font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}
.rfact span{font-size:var(--fs);color:var(--ink);display:flex;align-items:center;gap:6px;min-height:22px;flex-wrap:wrap;overflow-wrap:anywhere;min-width:0}
.rfact span form{margin:0;display:inline}
.toolbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.toolbar form{display:contents}
.bulkbar{display:none}
body.has-sel .bulkbar{display:flex}
.rowacts{display:flex;gap:4px;flex-wrap:wrap;opacity:0;transition:opacity .1s}
tr:hover .rowacts,tr:focus-within .rowacts{opacity:1}
.rowacts form{margin:0;display:inline}
.ffx{display:flex;flex-wrap:wrap;gap:8px;width:100%}.ffx>*{flex:1 1 140px}.ffx[hidden]{display:none}
/* R20 · folded sections */
.card.acc>.chead{cursor:pointer;margin-bottom:0}
.card.acc>.chead h2::before{content:"";display:inline-block;width:8px;height:8px;background:var(--muted);-webkit-mask:var(--chev) center/contain no-repeat;mask:var(--chev) center/contain no-repeat;transform:rotate(90deg);margin:0 10px 2px 2px;transition:transform .15s}
.card.acc.accclosed>.chead h2::before{transform:rotate(0deg)}
.card.acc:not(.accclosed)>.chead{margin-bottom:14px}
.card.accclosed>:not(.chead){display:none!important}
.card.accclosed{padding-top:16px;padding-bottom:16px}
.umore .rowmorep form{display:block!important;margin:0}
.umore .rowmorep .btn{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--ink);font-weight:500;min-height:36px}
.umore .rowmorep .btn:hover{background:var(--surface-2)}
.umore .rowmorep details{display:block!important}
/* R19 · the row menu */
.rowacts1{flex-wrap:nowrap;align-items:center}
.rowmore{position:relative;display:inline-block}
.rowmore>summary{list-style:none;cursor:pointer}
.rowmore>summary::-webkit-details-marker{display:none}
.rowmorep{position:absolute;right:0;top:calc(100% + 4px);z-index:30;min-width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);padding:6px;display:flex;flex-direction:column}
.rowmorep a,.rowmorep button{display:block;width:100%;text-align:left;padding:9px 10px;border:0;background:transparent;border-radius:var(--r-sm);color:var(--ink);font:inherit;font-size:var(--fs);cursor:pointer;text-decoration:none}
.rowmorep a:hover,.rowmorep button:hover{background:var(--surface-2);text-decoration:none}
.rowmore[open] ~ *{visibility:visible}
tr:has(.rowmore[open]) .rowacts{opacity:1}
.rowacts .btn{min-height:28px;padding:0 8px;font-size:var(--fs-xs)}
.tnext{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap}
.tnext.due{color:var(--bad);font-weight:500}
.tnext.today{color:var(--warn);font-weight:500}
@media(hover:none){ .rowacts{opacity:1} }
.banners{margin:0 0 var(--gap)}
.sysbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:9px 14px;border-radius:var(--r);background:var(--warn-bg);color:var(--warn);font-size:var(--fs-sm);margin:0 0 8px}
.sysbar form{margin:0;display:inline}
.sysbar .btn{min-height:30px;padding:0 10px;font-size:var(--fs-sm)}
.sysbar .sp{flex:1}
.sysbar.build{background:var(--navy-xl);color:var(--navy);border:0;padding:6px 8px 6px 12px;font-size:var(--fs-sm)}
.sysbar.build a{font-weight:600;text-decoration:underline;text-underline-offset:2px}
.sysbar .sysx{border:0;background:transparent;color:var(--muted);font:inherit;font-size:var(--fs-card);line-height:1;width:32px;height:32px;border-radius:8px;cursor:pointer}
.sysbar .sysx:hover{background:var(--navy-l);color:var(--navy)}
.sysbar.viewas{background:var(--warn);color:var(--bg)}
.sysbar.viewas .sysq{opacity:.85}
.sysbar.viewas .btn{background:var(--surface);color:var(--warn);font-weight:700;border-color:transparent;box-shadow:none;filter:none}
.sysbar.support{background:var(--info-bg);color:var(--info)}   /* R61 · a platform support session */
.sysbar.support .sysq{color:var(--ink)}
.rgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(170px,100%),1fr));gap:8px}
.rgrid .rchip{min-width:0}
.rchip b{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block}
@media(max-width:600px){
  .tbl.stack thead{display:none}
  .tbl.stack,.tbl.stack tbody,.tbl.stack tr{display:block;width:100%}
  .tbl.stack tr{padding:10px 0;border-bottom:1px solid var(--line)}
  .tbl.stack tr::after{content:"";display:block;clear:both}
  .tbl.stack td{display:inline-block;padding:2px 10px 2px 0;border:0;vertical-align:top;min-width:0!important;white-space:normal!important}
  .tbl.stack td.tck{float:left;width:auto;padding:4px 8px 0 0}
  .tbl.stack td.blk{display:block}
  .tbl.stack td:empty{display:none}
  .tbl.stack tr:hover td{background:transparent}
  .tbl.stack .rowacts{margin-top:4px}
  /* R5 · a stacked row hides its header, which is fine when every cell says
   * what it is ("Dale Hicks", "Austin, TX") and useless when the cells are
   * bare numbers — "3 5 0% 0 —" tells a person nothing. A cell may carry
   * data-l to bring its own label down with it. Opt-in: every stack table
   * written before this one has no data-l and is untouched. */
  .tbl.stack td[data-l]{display:block;padding:1px 0}
  .tbl.stack td[data-l]::before{content:attr(data-l) ": ";color:var(--muted);font-size:var(--fs-xs)}
  .tbl.stack td[data-l]:empty{display:block}
  .tbl.stack td.rowname[data-l]::before{content:none}
  .tbl.stack td.rowname{padding-bottom:4px}
}
body.navopen::after{content:"";position:fixed;inset:calc(var(--hh) + var(--sat)) 0 0 0;background:rgba(11,18,32,.4);z-index:29;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}

/* ---------- phone: drawer, bottom tab bar, tap targets ---------- */
.tabbar{display:none}
@media(max-width:820px){
  .navtog{display:grid}
  .side{transform:translateX(-100%);transition:transform .2s cubic-bezier(.2,.8,.2,1);box-shadow:var(--sh-lg);overflow-y:auto;overflow-x:hidden;width:min(300px,84vw);
    border-radius:0 var(--r-xl) var(--r-xl) 0;padding-bottom:calc(var(--sab) + 16px)}
  body.navopen .side{transform:none;z-index:56}
  body.navmin .side{width:min(300px,84vw)}
  body.navopen::after{z-index:55}
  body.navmin .suser .sut,body.navmin .suser .ibtn{display:flex}
  body.navmin .scat span,body.navmin .scar{display:flex}
  body.navmin .scat{justify-content:flex-start;padding:0 10px;width:100%;height:auto}
  .scat{min-height:46px;font-size:var(--fs)}
  .sflyo{position:static;display:none;margin:2px 0 6px 13px;padding:2px 0 2px 7px;min-width:0;max-height:none;border:0;border-radius:0;box-shadow:none;opacity:1;visibility:visible;transform:none}
  .sflyo::before{display:none}
  .sfh,.sfc{display:none}
  .scatw.open>.sflyo{display:block}
  .scatw.open>.scat .scar{transform:rotate(90deg)}
  .sflyo .snav{min-height:44px;font-size:var(--fs)}
  .main{margin-left:0;padding-bottom:calc(var(--tabh) + var(--sab) + 24px)}
  body.navmin .main{margin-left:0}
  .ck{min-width:0;width:40px;height:40px;padding:0;justify-content:center;border:0;background:transparent;border-radius:10px}
  .ck span,.ck kbd{display:none}
  .ck .ic{width:20px;height:20px;color:var(--ink)}
  .bname{display:none}
  .crumb{display:none}
  .ptitle .sub{display:none}
  .ptitle{margin-bottom:var(--s3)}
  .banners .sysbar{padding:8px 12px;font-size:var(--fs-sm);border-radius:10px}
  .banners .sysbar.viewas .sysq{display:none}
  .card{padding:var(--pad);border-radius:var(--r-lg)}
  .chead .cright{flex-wrap:nowrap;overflow-x:auto;max-width:100%;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
  .chead .cright::-webkit-scrollbar{display:none}
  .chead .cright>*{flex:none}
  .tfilt{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .tfilt::-webkit-scrollbar{display:none}
  .tfilt>*{flex:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;height:calc(var(--tabh) + var(--sab));padding:0 6px var(--sab);
    background:var(--hdr-bg);-webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);border-top:1px solid var(--hair)}
  .tabbar a{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:var(--fs-2xs);font-weight:600;color:var(--muted);min-height:var(--tap);border-radius:12px;letter-spacing:.01em}
  .tabbar a:hover{text-decoration:none}
  .tabbar a.on{color:var(--navy)}
  .tabbar a.on .ic{color:var(--navy)}
  .tabbar .ic{width:23px;height:23px;transition:transform .12s}
  .tabbar a:active .ic{transform:scale(.92)}
  .tabbar .tplus{flex:none;width:52px;height:52px;margin:-14px 6px 0;border-radius:18px;background:var(--navy);color:var(--on-navy);box-shadow:0 6px 16px rgba(13,67,144,.35);align-self:flex-start}
  .tabbar .tplus .ic{width:26px;height:26px;color:var(--on-navy)}
  .tabbar .tplus.on{color:var(--on-navy)}
  /* R11 · A-03 — "a.chip" is the chip that IS the link; ".chip a" is a link
     INSIDE a chip. Only the second was in this rule, so a chip used as
     navigation — the count badges on the order views, the tag links on a
     record — stayed 22px tall on a phone, half the 44px minimum. Two
     selectors that read almost identically and mean opposite things; that is
     how it survived three UI sprints. inline-flex so the extra height
     actually centers the label rather than dropping it to the top. */
  .btn,.btn.sm,.chip a,a.chip,.rowacts .btn,.tfilt .btn,.sysbar .btn{min-height:var(--tap)}
  a.chip{display:inline-flex;align-items:center}
  .btn.sm{padding:0 14px}
  .rowacts{opacity:1}
  .tbl td{padding:12px 10px}
  .rhead{position:static;margin-top:0;padding-top:0;border-bottom:0}
  .rfacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-lg);padding:12px 14px}
  .rfacts .ravatar{grid-column:1/-1}
  .racts{position:fixed;left:0;right:0;bottom:calc(var(--tabh) + var(--sab));z-index:45;background:var(--hdr-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--hair);padding:8px 10px;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}
  .racts::-webkit-scrollbar{display:none}
  .racts .btn{flex:1;white-space:nowrap;min-height:42px}
  .racts form{flex:1;display:flex}
  .racts form .btn{width:100%}
  .rmore{flex:none}
  .rmorep{position:fixed;left:10px;right:10px;top:auto;bottom:calc(var(--tabh) + var(--sab) + 64px);max-width:none;max-height:60vh;overflow:auto;border-radius:var(--r-lg)}
  body.hasrec .main{padding-bottom:calc(var(--sab) + 84px)}
  /* R18 · on a record the action bar IS the bottom bar; the menu button still reaches everything */
  body.hasrec .tabbar{display:none}
  body.hasrec .racts{bottom:0;padding-bottom:calc(8px + var(--sab))}
  body.hasrec .rmorep{bottom:calc(var(--sab) + 64px)}
  body.hasrec .tabbar .tplus{margin-top:6px;width:44px;height:44px;box-shadow:none;border-radius:14px;align-self:center}
  body.hasrec .tabbar .tplus .ic{width:22px;height:22px}
  .rstamp{display:none}
  .ribbon{grid-template-columns:repeat(2,1fr)!important}
}

/* ---------- sign-in ---------- */
/* R58 · the way in matches the rest: the deep navy metal side (text on it is the checked --metal-on-deep pair), the
   platinum ground, and a solid card with the silver edge that fades in. Was a hard-coded gradient and white text. */
.lgwrap{display:grid;grid-template-columns:1.05fr 1fr;min-height:100vh}
.lgside{background:var(--metal-deep);color:var(--metal-on-deep);padding:48px;display:flex;flex-direction:column;justify-content:center}
.lgside h2{font-size:var(--fs-h1);line-height:1.2;margin:0 0 14px;font-weight:700;letter-spacing:-.02em;color:var(--metal-on-deep)}
.lgside p{color:var(--metal-on-deep-2);max-width:44ch;font-size:var(--fs-lg)}
.lgside .lmark{width:44px;height:44px;border-radius:12px;background:var(--teal);color:var(--on-teal);display:grid;place-items:center;font-weight:700;margin:0 0 26px;font-size:var(--fs)}
.lgside .lgplate{display:inline-block;align-self:flex-start;background:var(--paper);border-radius:12px;padding:12px 16px;margin:0 0 26px;box-shadow:var(--metal-glow)}
.lgside .lglogo{height:48px;width:auto;display:block}
.lgcontact{margin-top:22px;font-size:var(--fs-sm);color:var(--metal-on-deep-2)}
.lgmain{display:grid;place-items:center;padding:32px 20px calc(32px + var(--sab));background:var(--metal-page);background-attachment:fixed;background-color:var(--bg)}
.lgcard{width:100%;max-width:420px;background:var(--metal-card);background-color:var(--surface);border:1px solid transparent;border-radius:var(--r-xl);padding:var(--s8) var(--s6);box-shadow:var(--metal-glow);animation:sdfxin var(--dur-3) var(--ease) both}
.lgcard h1{margin:0 0 6px}
.lgcard .sub{color:var(--muted);margin:0 0 22px}
.lgcard .btn{width:100%;min-height:46px}
.lgcard .lgmore{margin-top:var(--s4)}
.lgcard .frow input{min-height:46px}
@media(max-width:820px){ .lgwrap{grid-template-columns:1fr;grid-template-rows:auto 1fr} .lgside{padding:calc(24px + var(--sat)) 24px 24px;min-height:auto;justify-content:flex-start} .lgside h2{font-size:var(--fs-h2);margin:0} .lgside p{display:none} .lgside .lmark,.lgside .lgplate{margin-bottom:12px} .lgcontact{display:none} .lgmain{align-items:start;padding-top:24px} .lgcard{padding:var(--s6) var(--s5)} }
@media(max-width:400px){ .lgmain{padding-left:var(--s3);padding-right:var(--s3)} .lgcard{padding:var(--s5) var(--s4)} }.lcount{font-weight:400;color:var(--muted)}.lcap{margin:0 0 8px;color:var(--muted)}.lpager{display:flex;align-items:center;justify-content:space-between;gap:8px 12px;flex-wrap:wrap;margin:12px 0 2px}.lpager .small{color:var(--muted);text-align:center;flex:1 1 auto}@media(max-width:480px){.lpager .small{order:-1;flex-basis:100%}.lpager .btn{flex:1 1 40%;justify-content:center}}.pick{position:relative;display:block;min-width:0}.pick .pickq{width:100%;box-sizing:border-box}.pickl{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 4px);margin:0;padding:4px;list-style:none;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-lg);max-height:min(320px,50vh);overflow-y:auto}.pickl li{padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;min-height:36px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center}.pickl li small{color:var(--muted);font-size:var(--fs-xs)}.pickl li[aria-selected=true],.pickl li:hover{background:var(--navy-l)}.pickl li.pkn{color:var(--muted);cursor:default;background:none}.lkw{position:relative;display:block;min-width:0}.lkw>input{width:100%;box-sizing:border-box}.pickl.lkl li{min-height:44px}.pickl.lkl li b{font-weight:600;color:var(--ink)}/* ===== R58 · the office console: metallic, subtle, dense (UI review §2.1, §5) ===== */
/* The ground: brushed platinum (gunmetal in dark mode), fixed so it does not scroll with a long table. */
body.app{background:var(--metal-page);background-attachment:fixed;background-color:var(--bg)}
/* The top bar and the side menu: frosted over the metal, with a silver hairline instead of a grey one. */
.hdr{border-bottom-color:var(--metal-tile-line)}
.side{background:var(--hdr-bg);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px)}
.scat.on,.snav.on{background:var(--navy-l);box-shadow:inset 0 0 0 1px var(--metal-tile-line)}
/* Cards: SOLID (text never sits on a gradient), with the silver 1px edge. Density unchanged. */
.card{border-color:transparent;background:var(--metal-card);background-color:var(--surface)}
.rib{border-color:transparent;background:var(--metal-card);background-color:var(--surface)}
a.rib:hover{}
/* A record's header sat on a solid --bg strip; on the metal it is see-through. The tabs that stick under the top bar
   are frosted like the top bar (they must hide what scrolls under them). */
.rhead{background:transparent}
.rtabs{background:var(--hdr-bg);-webkit-backdrop-filter:saturate(180%) blur(14px);backdrop-filter:saturate(180%) blur(14px);border-bottom-color:var(--metal-tile-line)}
/* Text straight on the metal (not in a card) is ink: the ground runs to a darker silver in one corner. */
.ptitle .sub,.crumb,.crumb a{color:var(--ink)}
.crumb span,.crumb span::after,.crumb a::after{color:var(--muted)}
/* The primary button: navy metal. Ghost, teal and danger keep their own looks (they are not the primary). */
.btn:where(:not(.ghost,.teal,.danger)){background:var(--metal-btn);color:var(--metal-on-btn);border-color:var(--metal-btn-line);box-shadow:var(--metal-btn-sh)}
.btn:where(:not(.ghost,.teal,.danger)):hover{background:var(--metal-btn);color:var(--metal-on-btn);filter:brightness(1.08)}
.btn.sm:where(:not(.ghost,.teal,.danger)),.tfilt .btn:where(:not(.ghost)),.rowacts .btn:where(:not(.ghost)){box-shadow:none}
.btn{transition:filter var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),background-color var(--dur-1) var(--ease)}
.btn:active{transform:scale(.98)}
.tabbar .tplus{background:var(--metal-btn);color:var(--metal-on-btn);box-shadow:var(--metal-btn-sh)}
.tabbar .tplus .ic,.tabbar .tplus.on{color:var(--metal-on-btn)}
.palline button{background:var(--metal-btn);color:var(--metal-on-btn);border-color:var(--metal-btn-line)}
/* The avatar in the top bar (was a style attribute) */
.uava .av{width:32px;height:32px;font-size:var(--fs-sm);background:var(--metal-btn);color:var(--metal-on-btn)}
.sysbar form{display:inline}

/* ===== R58 · Today's Board ===== */
/* Finish setting up: a checklist card, not a warning strip */
.setupc .chead{margin-bottom:var(--s2)}
.setupc .sumline{display:flex;align-items:center;gap:var(--s3);margin:0 0 var(--s3);color:var(--ink);font-weight:600}
.setupc .meter{flex:1;max-width:240px;height:8px;border-radius:var(--pill);background:var(--metal-track);overflow:hidden}
.setupc .meter i{display:block;height:100%;background:var(--metal-bar);border-radius:var(--pill)}
.setupc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.setupc li a{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:var(--s3);align-items:start;padding:var(--s2) var(--s2);border-radius:var(--r-sm);color:var(--ink);text-decoration:none;min-height:var(--tap)}
.setupc li a:hover{background:var(--surface-2);text-decoration:none}
.setupc li b{display:block;font-weight:600}
.setupc li span.d{display:block;color:var(--muted);font-size:var(--fs-sm);margin-top:2px}
.setupc li.ok span.d{display:none}
.setupc .sdot{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;margin-top:1px}
.setupc .sdot .ic{width:14px;height:14px}
.setupc li.ok .sdot{background:var(--ok-bg);color:var(--ok)}
.setupc li.warn .sdot{background:var(--warn-bg);color:var(--warn)}
.setupc li.bad .sdot{background:var(--bad-bg);color:var(--bad)}
.setupc li .go{color:var(--navy);font-weight:600;font-size:var(--fs-sm);white-space:nowrap;align-self:center}
.setupc li.ok .go{color:var(--muted);font-weight:500}
/* Needs you now: one status per row, the score in its own column */
.hq{list-style:none;margin:0;padding:0}
.hqhd,.hqr{display:grid;grid-template-columns:minmax(0,1fr) auto 52px;gap:var(--s2) var(--s3);align-items:center}
.hqhd{padding:0 0 var(--s2);border-bottom:1px solid var(--line);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.hqhd span:nth-child(3){text-align:right}
.hqr{padding:var(--s3) 0;border-bottom:1px solid var(--line-s)}
.hqr:last-child{border-bottom:0}
.hqm{min-width:0;display:flex;flex-direction:column;gap:2px}
.hqm a{font-weight:600;overflow-wrap:anywhere}
.hqs{font-size:var(--fs-sm);color:var(--muted)}
.hqst{justify-self:end}
.hqn{justify-self:end;text-align:right;font-variant-numeric:tabular-nums}
.hqsc{font-weight:700;color:var(--ink);font-size:var(--fs)}
.tiph.hqtip{margin-left:0}
.tiph.hqtip .tipb.hqsc{width:auto;min-width:36px;height:28px;padding:0 8px;border-radius:var(--pill);background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}
.tiph.hqtip .tipb.hqsc:hover,.tiph.hqtip.on .tipb.hqsc{background:var(--navy-l);color:var(--navy)}
.tiph.hqtip .tipp{right:0;left:auto}
@media(max-width:600px){
  .hqhd{display:none}
  .hqr{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"m m" "s n"}
  .hqm{grid-area:m}.hqst{grid-area:s;justify-self:start}.hqn{grid-area:n}
  .tiph.hqtip .tipb.hqsc{height:var(--tap);min-width:var(--tap)}
}
/* Today: time, what, one status */
.tdy{list-style:none;margin:0;padding:0}
.tdy li{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:var(--s3);align-items:center;padding:var(--s3) 0;border-bottom:1px solid var(--line-s)}
.tdy li:last-child{border-bottom:0}
.tdy .tt{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.tdy .tw{min-width:0;display:flex;flex-direction:column;gap:2px}
.tdy .tw a,.tdy .tw b{font-weight:600;overflow-wrap:anywhere}
.tdy .tw span{font-size:var(--fs-sm);color:var(--muted)}
.hboard{align-items:start}
.hboard .empty .ic{margin-bottom:var(--s2)}
/* The ribbon (was a <style> in the page) */
.ribbon{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--gap);margin-bottom:var(--gap)}
.rib{border:1px solid transparent;border-radius:var(--r);padding:10px 12px;text-align:center;display:block;color:var(--ink)}
.rib b{display:block;font-size:var(--fs-h2);font-variant-numeric:tabular-nums}
.rib span{font-size:var(--fs-xs);color:var(--muted)}
.rib.bad b{color:var(--bad)}
a.rib{color:inherit;text-decoration:none}a.rib:hover{text-decoration:none}
.ribnote{margin:-6px 0 12px;color:var(--ink);font-size:var(--fs-sm)}
@media(max-width:640px){.ribbon{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.rib:last-child{grid-column:span 2}}
/* System checks (was "Set-up"): folded when everything is fine */
.syschk summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:var(--s2);min-height:var(--tap);font-weight:600;color:var(--navy)}
.syschk summary::-webkit-details-marker{display:none}
.syschk .sdot{width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;flex:none}
.syschk .sdot .ic{width:14px;height:14px}
.syschk .ok .sdot,.syschk .sdot.ok{background:var(--ok-bg);color:var(--ok)}.syschk .warn .sdot{background:var(--warn-bg);color:var(--warn)}
.syschk ul{list-style:none;margin:0;padding:0}
.syschk li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:var(--s3);padding:var(--s2) 0;border-bottom:1px solid var(--line-s)}
.syschk li:last-child{border-bottom:0}
.syschk li b{font-weight:600;display:block}
.syschk li span.d{display:block;font-size:var(--fs-sm);color:var(--muted)}
.inflt td+td{text-align:right}
/* OBC1 · the side column is 300px at 1024: "last ran just now" wraps instead of pushing the page sideways (ob12_fitscan, home.php) */
.inflt{table-layout:fixed;width:100%}.inflt td+td{width:42%}.inflt .chip{white-space:normal;max-width:100%}

/* ===== R58 · sign-in: the password Show button (login.php; the rest of the sign-in look is in page_css) ===== */
.pwwrap{position:relative}
.pwwrap input{padding-right:72px}
.pwshow{position:absolute;right:2px;top:50%;transform:translateY(-50%);min-height:var(--tap);padding:0 var(--s3);border:0;background:transparent;color:var(--navy);font:inherit;font-weight:600;font-size:var(--fs-sm);cursor:pointer;border-radius:var(--r-sm)}
.pwshow:hover{background:var(--navy-l)}/* ===== R62 · the office console on glass (work surface: calm) ===== */
:root{--sw:248px;--swc:76px;--hh:84px;--tabh:84px}
body.app{background:var(--bg)}
/* ---- the side menu: a floating glass panel ---- */
.side{top:calc(var(--sat) + 14px);left:14px;bottom:14px;width:var(--sw);border:0;border-radius:26px;padding:14px 10px;gap:2px;
  background:var(--glass-work);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:var(--glass-sh)}
.sbrand{display:flex;align-items:center;gap:8px;padding:4px 10px 12px;min-height:44px;text-decoration:none;border-radius:14px}
.sbrand:hover{text-decoration:none}
.sbrand .sbm{display:none}
.ssep{height:0;background:none;margin:8px 0}
.scat,.snav{min-height:42px;border-radius:14px;color:var(--muted);font-weight:500;transition:background .25s var(--ease),color .25s var(--ease),transform .3s var(--spring)}
.snav .snavn{margin-left:auto;font-style:normal;font-family:var(--mono);font-size:var(--fs-2xs);line-height:1.6;padding:0 7px;border-radius:999px;background:var(--btn);color:var(--on-btn);flex-shrink:0}   /* CD1a · the Desk's count */
.scat .ic,.snav .ic{color:inherit}
.scat:hover,.snav:hover{background:var(--soft);color:var(--ink)}
.scat:active,.snav:active{transform:scale(.97)}
.scat.on,.snav.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;box-shadow:none}
.scat.on .ic,.snav.on .ic{color:var(--on-accent-soft)}
.sflyo{background:var(--glass-menu);border:0;border-radius:20px;box-shadow:var(--sh-lg);padding:8px;margin-left:12px}
.sfh{font-family:var(--mono);letter-spacing:.14em;color:var(--muted);padding:6px 10px 4px}
.soon{border:0;background:var(--soft);color:var(--muted)}
.sfoot{border-top:0}
.sbuild{font-family:var(--mono);color:var(--muted)}
body.navmin .side{width:var(--swc);padding:14px 12px}
body.navmin .sbrand{justify-content:center;padding:4px 0 12px}
body.navmin .sbrand .sbl{display:none}
body.navmin .sbrand .sbm{display:inline-flex}
body.navmin .scat{width:52px;height:44px;margin:0 auto}
/* ---- the top bar: floating glass, to the right of the side menu ---- */
.hdr{top:calc(var(--sat) + 14px);left:calc(var(--sw) + 28px);right:14px;height:56px;padding:0 8px;gap:6px;border:0;border-radius:22px;
  background:var(--glass-work);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:var(--glass-sh)}
body.navmin .hdr{left:calc(var(--swc) + 28px)}
.hdr .brand{display:none}
.brand:hover{background:transparent}
.ibtn{width:44px;height:44px;border-radius:50%;background:var(--soft);color:var(--ink);transition:transform .35s var(--spring),background .2s var(--ease)}
.ibtn:hover{background:var(--soft-2)}
.ibtn:active{transform:scale(.92)}
.hdr .navtog{background:transparent}
.hdr .navtog:hover{background:var(--soft)}
.ck{flex:1 1 auto;max-width:none;min-width:0;height:44px;border:0;border-radius:16px;background:var(--soft);color:var(--muted);font-size:var(--fs);padding:0 14px;gap:10px}
.ck:hover{background:var(--soft-2);border:0}
.ck kbd{border:0;background:var(--surface);color:var(--muted);font-family:var(--mono);border-radius:7px;padding:1px 7px}
.ck .ic{width:18px;height:18px}
.hsp{flex:0 0 2px}
.hnew{flex:none}
.bell .dot{border:0;background:var(--btn);color:var(--on-btn);box-shadow:0 0 0 2px var(--glass-work)}
.uava{background:transparent}
.uava .av{width:40px;height:40px;font-size:var(--fs-sm);background:linear-gradient(160deg,var(--btn-top),var(--sdnavy));color:var(--on-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
/* menus that drop from the bar: near-solid (a blur nested in a blurred bar samples nothing), no outline */
.recentp,.rmorep,.rowmorep,.rtmorep,.npanel{background:var(--glass-menu);border:0;border-radius:20px;box-shadow:var(--sh-lg)}
.umh{border-bottom:0}
.umsep{background:var(--line-s)}
.recentp a:hover,.recentp.umenup a:hover,.umenup .umi:hover,.rowmorep a:hover,.rowmorep button:hover,.rtmorep a:hover{background:var(--soft)}
.rchip{border:0;background:var(--soft);border-radius:14px}
.rchip:hover{background:var(--soft-2)}
.rchip span{color:var(--muted);font-family:var(--mono)}
/* ---- the page ---- */
/* Recommended (owner, 30 Sep 2026): work screens do not rise in (the R58 fade stays on the portals and public pages;
   the cards keep their data-fx marks, only the animation is off here) */
html[data-surface="work"] .main [data-fx],html[data-surface="work"] .main .fx{animation:none}
.main{margin-left:calc(var(--sw) + 28px);padding:calc(var(--hh) + var(--sat) + 8px) 26px 64px 10px;max-width:1500px}
body.navmin .main{margin-left:calc(var(--swc) + 28px)}
/* the page heading: a small mono label (where you are), a big light title, one line of context */
.ptitle{margin:0 0 var(--gap);gap:4px}
.crumb{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0}
.crumb a,.crumb span{color:var(--muted)}
.crumb a:hover{color:var(--accent);text-decoration:none}
.crumb span::after,.crumb a::after{color:var(--muted)}
.ptitle h1{font-size:clamp(30px,2.9vw,42px);font-weight:200;line-height:1.08;letter-spacing:-.025em;margin-top:2px} /* design-ok: Sora display weights from the approved glass mockup */
.ptitle .sub{color:var(--muted);font-size:var(--fs-lg);margin-top:6px}
/* cards: rounded frosted panels, no outline; a card holding a table or a form is a SOLID panel */
.card{background:var(--glass-work);border:0;border-radius:24px;box-shadow:var(--sh-card);padding:20px 22px}
.card:has(.tbl,table,form textarea,.frow),.rside{background:var(--surface)}
.chead{margin:0 0 14px}
.chead h2{font-size:calc(var(--fs-h2) + 3px);font-weight:400;letter-spacing:-.02em}
.chead .csub{color:var(--muted)}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .side,.hdr,.tabbar,.racts{background:var(--surface)} }
/* number tiles (the ribbon, stat cards) */
.ribbon{gap:12px}
.rib{background:var(--glass-work);border:0;border-radius:22px;box-shadow:var(--sh-card);padding:16px 18px;text-align:left;display:flex;flex-direction:column-reverse;justify-content:flex-end;gap:4px;
  transition:transform .35s var(--spring),box-shadow .3s var(--ease)}
.rib b{font-family:var(--mono);font-size:var(--fs-kpi);font-weight:500;line-height:1.1;letter-spacing:0}
.rib span{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:500}
/* R62.1 · the owner's screenshot: a label that wraps to two lines pushed its number lower than the next tile's, and
   "None yet" filled the tile to its edge. Each tile is a two-row subgrid of the ribbon: the labels share row 1 (so they
   start together), the values share row 2 and sit on ONE baseline whatever the labels do. A value that is words
   ("None yet") is .rbw: body size, muted, on that same baseline. Without subgrid: labels keep a two-line slot. */
@supports (grid-template-rows:subgrid){
  .rib{display:grid;grid-row:span 2;grid-template-rows:subgrid;grid-template-columns:minmax(0,1fr);justify-content:stretch;row-gap:6px}
  .rib span{grid-row:1;align-self:start}
  .rib b{grid-row:2;align-self:last baseline}
}
@supports not (grid-template-rows:subgrid){ .rib span{min-height:calc(2 * 1.5em)} }
.rib b.rbw{font-family:var(--font);font-size:var(--fs-lg);font-weight:500;color:var(--muted);letter-spacing:0}
.rib.bad b{color:var(--bad)}
a.rib:hover{border:0;transform:translateY(-2px);box-shadow:var(--glass-sh)}
.sv{font-family:var(--mono);font-weight:500;letter-spacing:0}
.sl{color:var(--muted)}
/* ---- buttons: filled pills, a spring on press; no outline, no black ---- */
.btn{min-height:44px;padding:0 20px;border:0;border-radius:999px;font-weight:600;font-size:var(--fs);gap:8px;
  background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn); /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px var(--btn);transition:transform .35s var(--spring),box-shadow .3s var(--ease),filter .2s var(--ease)}
.btn:hover{color:var(--on-btn);filter:brightness(1.05);transform:translateY(-1px)}
.btn:active{transform:scale(.96)}
.btn:where(:not(.ghost,.teal,.danger)){background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);border:0;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px var(--btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.btn:where(:not(.ghost,.teal,.danger)):hover{background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.btn.ghost,.btn.ghost:hover{background:var(--soft);color:var(--on-soft);border:0;box-shadow:inset 0 1px 0 var(--sheen)}
.btn.ghost:hover{background:var(--soft-2);filter:none}
.btn.ghost.on{background:var(--accent-soft);color:var(--on-accent-soft);border:0}
.btn.teal{background:var(--teal-d);background-image:none;color:var(--on-teal);box-shadow:none}
.btn.navy,.btn.navy:hover{background-color:var(--sdnavy);background-image:linear-gradient(180deg,var(--sdnavy-top),var(--sdnavy));color:var(--on-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.3),0 10px 22px -12px var(--sdnavy)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
/* destructive: a red tint and its words, never a solid red block; still confirmed where it was */
.btn.danger,.btn.danger:hover,.btn.ghost.danger,.btn.ghost.danger:hover{background:var(--bad-bg);background-image:none;color:var(--bad);border:0;box-shadow:none;filter:none}
.btn.danger:hover,.btn.ghost.danger:hover{filter:saturate(1.2)}
.btn.sm{min-height:38px;padding:0 15px;font-size:var(--fs-sm);border-radius:999px}
.btn.xs{min-height:34px;padding:0 13px;font-size:var(--fs-xs)}
.btn.sm:where(:not(.ghost,.teal,.danger)),.tfilt .btn:where(:not(.ghost)),.rowacts .btn:where(:not(.ghost)){box-shadow:inset 0 1px 0 rgba(255,255,255,.3)}
.btn[disabled],.btn[disabled]:hover{opacity:.5;transform:none;filter:none}
.rowacts .btn{border-radius:999px}
.tfilt .btn{border-radius:999px}
/* chips: a tint and words */
.chip{height:24px;padding:0 10px;border:0;border-radius:999px;background:var(--soft);color:var(--muted);font-weight:600;font-size:var(--fs-xs)}
.rtn{font-family:var(--mono);font-weight:500}
.rsub .chip.on{background:var(--accent-soft);color:var(--on-accent-soft);border:0}
/* ---- forms: soft-filled boxes; the focused one shows its edge and a ring; the label over a box is small mono caps ---- */
label{font-family:var(--font)}
.frow>label:not(.chk),.frow2>div>label:not(.chk),.frow2>label:not(.chk){font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 6px}
input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],
input[type=date],input[type=time],input[type=search],input[type=datetime-local],select,textarea{
  min-height:44px;border:1px solid transparent;border-radius:14px;background-color:var(--soft);color:var(--ink);padding:9px 14px;transition:background-color .2s var(--ease),box-shadow .25s var(--ease),border-color .2s var(--ease)}
input:hover,select:hover,textarea:hover{background-color:var(--soft-2)}
input:focus,select:focus,textarea:focus{background-color:var(--glass-2);border-color:transparent;box-shadow:inset 0 1px 0 var(--sheen),0 8px 20px -12px var(--shade-2)}   /* G1 · brightens, no ring (owner, 5 Oct 2026) */
select[multiple]{background-color:var(--soft)}
html input[type=checkbox],html input[type=radio]{accent-color:var(--btn)}
.abar select,.abar input{border:1px solid transparent;border-radius:14px;background-color:var(--soft)}
/* ---- tab strips: a soft track with a filled pill on the current one (no underline) ---- */
.sectabs{display:flex;flex-wrap:wrap;gap:2px;padding:4px;margin:-6px 0 var(--gap);border:0;border-radius:24px;background:var(--soft);width:fit-content;max-width:100%}
.sectabs a{border:0;margin:0;border-radius:999px;padding:0 14px;min-height:38px;display:inline-flex;align-items:center;color:var(--muted);font-size:var(--fs-sm);font-weight:600;transition:color .25s var(--ease)}
.sectabs a:hover{color:var(--ink)}
.sectabs a.on{color:var(--ink);background:var(--surface);box-shadow:0 4px 12px -6px var(--shade-2)}
.sectabs.gmoving a.on{background:transparent;box-shadow:none}
.sectabs .gpill{background:var(--surface);box-shadow:0 4px 12px -6px var(--shade-2)}
.rhead{border-bottom:0}
.rtabs{background:transparent;border:0;padding:4px 0;-webkit-backdrop-filter:none;backdrop-filter:none}
.rtabs-i{display:flex;flex-wrap:wrap;gap:2px;padding:4px;border-radius:24px;background:var(--glass-work);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:var(--glass-sh)}
.rtabs a{border:0;margin:0;border-radius:999px;min-height:40px;padding:0 13px;color:var(--muted)}
.rtabs a:hover{color:var(--ink);background:var(--soft)}
.rtabs a.on{color:var(--on-btn);background:linear-gradient(180deg,var(--btn-top),var(--btn));background-color:var(--btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -10px var(--btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.rtabs-i.gmoving a.on,.rtabs-i.gmoving a.on:hover{background:transparent;box-shadow:none}
.rtabs .gpill{background:linear-gradient(180deg,var(--btn-top),var(--btn));box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 8px 18px -10px var(--btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.rtmore summary{border-radius:999px;min-height:40px}
.rtmorep a{border-radius:12px}
/* ---- tables: spaced rows on a solid panel, no grid lines ---- */
.tbl{border-collapse:separate;border-spacing:0 4px}
.tbl th{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.12em;color:var(--muted);font-weight:500;border:0;padding:4px 12px 2px}
.tbl td{border:0;padding:11px 12px;background:var(--zebra)}
.tbl td:first-child{border-radius:14px 0 0 14px}.tbl td:last-child{border-radius:0 14px 14px 0}
.tbl td:only-child{border-radius:14px}
.tbl tr:hover td{background:var(--soft)}
.tbl .num,.tbl td.n{font-family:var(--mono);font-variant-numeric:tabular-nums}
/* ---- notes, banners, empty states ---- */
.note{border:0;border-radius:16px}
.note.quiet{border:0;background:var(--zebra)}
.note.info{background:var(--accent-soft);color:var(--ink)}
.sysbar{border-radius:16px}
.sysbar.build{border:0;background:var(--accent-soft);color:var(--on-accent-soft)}
.sysbar .sysx:hover{background:var(--surface)}
.empty .emptyi{background:var(--accent-soft);color:var(--on-accent-soft)}
/* ---- record pages ---- */
.rside{border:0;border-radius:22px;box-shadow:var(--sh-card)}
.rside .rfact{border-top:0;padding:8px 0}
.rside h2{font-family:var(--mono);font-weight:500;letter-spacing:.14em}
.rfact b{font-family:var(--mono);font-weight:500;letter-spacing:.12em;color:var(--muted)}
.rfrest{border-top:0}
.rfmore{border:0;background:var(--soft);border-radius:999px}
.rfmore:hover{border:0;background:var(--soft-2)}
.rmorep details{border-top:0}
.titem{border-bottom:0}
.tline::before{background:var(--soft-2)}
.tcomp .tcbody{border:0;background:var(--zebra);border-radius:16px}
.tcomp summary::before{background:var(--accent-soft);color:var(--on-accent-soft)}
.titem:target{background:var(--accent-soft)}
/* ---- the command palette and the bell ---- */
.pal{background:var(--glass-menu);border-radius:24px;box-shadow:var(--sh-lg)}
.pal input{border:0;border-radius:0;background:transparent;font-family:var(--font)}
.pal input:focus{box-shadow:none;border:0}
.palit{border-radius:14px}
.palit:hover,.palit.on{background:var(--accent-soft)}
.palact{border:0;background:var(--soft);border-radius:999px}
.palact:hover{background:var(--accent-soft);border:0}
.palact kbd{border:0;background:var(--surface)}
.palform{border:0;background:var(--zebra);border-radius:16px}
.palline input{border:1px solid transparent;border-radius:12px;background:var(--soft)}
.palline button{border:0;border-radius:999px;background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.palline .palcancel{background:var(--soft);background-image:none;color:var(--on-soft)}
.nph{border-bottom:0}
.npit{border-bottom:0;border-radius:14px}
.npit.unread{background:var(--accent-soft)}
.npact{border-bottom:0}
/* ---- My day and the office home (R62 · rebuilt to the mockup: hello, number tiles, queues) ---- */
.hq .hqhd,.hqhd{border-bottom:0;font-family:var(--mono);font-weight:500;letter-spacing:.12em;font-size:var(--fs-2xs)}
.hqr{border-bottom:0;padding:10px 12px;border-radius:16px;background:var(--zebra);margin-bottom:6px}
.hqr:hover{background:var(--soft)}
/* R62.1 · the column names sit exactly over their columns: the header takes the rows' side padding, and "Status" and
   "Score" end where the chips and the score end (mono letter-spacing trails the last letter; the margin takes it back) */
.hqhd{padding:0 12px 8px}
.hqhd span:nth-child(2),.hqhd span:nth-child(3){text-align:right;margin-right:-.12em}
.tiph.hqtip .tipb.hqsc{border:0;background:var(--soft);font-family:var(--mono)}
.tdy li,.syschk li{border-bottom:0;padding:10px 12px;border-radius:16px;background:var(--zebra);margin-bottom:6px}
.setupc li a:hover{background:var(--soft)}
.setupc .meter{background:var(--soft-2)}
/* R62.1 · the icon, the step name and "Done" / "Set up" share the name's first line in every row (the status used to
   center on the whole row, so it sat lower than the name whenever a row had a second line) */
.setupc li .go{align-self:start;line-height:calc(var(--fs) * var(--lh-body))}
.setupc .sdot{margin-top:calc((var(--fs) * var(--lh-body) - 22px) / 2)}
.syschk summary{color:var(--accent)}
.mdl{gap:6px}
.mdr{border-top:0;padding:10px 12px;border-radius:16px;background:var(--zebra);transition:background .2s var(--ease)}
.mdr:hover{background:var(--soft)}
.mdt{font-family:var(--mono);font-weight:500;font-size:var(--fs-sm);color:var(--muted)}
.mdlate .mdt{color:var(--bad)}
.mdtick .tpchk{border:0;background:var(--soft);transition:transform .35s var(--spring),background .2s var(--ease)}
.mdtick .tpchk:hover{background:var(--ok-bg);color:var(--ok)}
.mdtick .tpchk:active{transform:scale(.9)}
.mdtick .tpchk[aria-pressed="true"]{background:var(--ok-bg);color:var(--ok)}
.mdr.high .mdtick .tpchk{box-shadow:inset 0 0 0 2px var(--bad-bg);border:0}
.mdbar{background:var(--soft-2);height:8px}
.mdbar i{background:linear-gradient(90deg,var(--lt2),var(--btn))} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
.hello,.ptitle.hello{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin:0 0 var(--gap)}
.hello .htxt{min-width:0;flex:1 1 320px}
.hello .mdsum{font-size:var(--fs-lg);font-weight:500;color:var(--muted);margin:8px 0 0}
.hello h1{font-size:clamp(32px,3.4vw,48px);font-weight:200;line-height:1.05;letter-spacing:-.025em;margin:4px 0 0} /* design-ok: Sora display weights from the approved glass mockup */
.hello p{margin:8px 0 0;color:var(--muted);max-width:62ch;font-size:var(--fs-lg)}
.hello .acts{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.hello .mdprog{display:block;margin-top:4px;color:var(--muted);font-size:var(--fs-sm)}
.hello .mdbar{max-width:320px;margin-top:8px}
/* ---- the phone: floating glass top bar and tab bar, the menu slides in as a glass panel ---- */
@media(max-width:820px){
  :root{--hh:72px;--tabh:84px}
  .hdr{top:calc(var(--sat) + 8px);left:8px;right:8px;height:56px;border-radius:20px;padding:0 6px}
  body.navmin .hdr{left:8px}
  .hdr .brand{display:flex;padding:2px 4px}
  .ck{flex:0 0 auto;width:44px;height:44px;border-radius:50%;background:var(--soft);padding:0;justify-content:center}
  .ck:hover{background:var(--soft-2)}
  .hnew{display:none}
  .side{top:calc(var(--sat) + 8px);left:8px;bottom:8px;border-radius:24px;transform:translateX(calc(-100% - 16px));background:var(--glass-menu);padding-top:14px}
  body.navopen .side{transform:none}
  .sbrand{display:none}
  .main{margin-left:0;padding:calc(var(--hh) + var(--sat) + 6px) var(--pad) calc(var(--tabh) + var(--sab) + 20px)}
  body.navmin .main{margin-left:0}
  body.navopen::after{inset:0}
  .tabbar{left:8px;right:8px;bottom:calc(var(--sab) + 8px);height:66px;padding:6px;border:0;border-radius:26px;align-items:center;gap:2px;
    background:var(--glass-work);-webkit-backdrop-filter:blur(14px) saturate(1.6);backdrop-filter:blur(14px) saturate(1.6);box-shadow:var(--glass-sh)}
  .tabbar a{border-radius:18px;min-height:54px;color:var(--muted);transition:background .25s var(--ease),color .25s var(--ease),transform .3s var(--spring)}
  .tabbar a:active{transform:scale(.92)}
  .tabbar a.on,.tabbar a.on .ic{color:var(--on-accent-soft)}
  .tabbar a.on{background:var(--accent-soft)}
  .tabbar .tplus{flex:none;width:52px;height:52px;margin:0 4px;border-radius:50%;align-self:center;background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 10px 22px -12px var(--btn)} /* design-ok: the approved glass mockup (buttons, the glow, the bars) */
  .tabbar .tplus .ic,.tabbar .tplus.on{color:var(--on-btn)}
  .racts{left:8px;right:8px;bottom:calc(var(--tabh) + var(--sab));border:0;border-radius:22px;background:var(--glass-work);box-shadow:var(--glass-sh)}
  body.hasrec .racts{bottom:calc(var(--sab) + 8px);padding-bottom:8px}
  body.hasrec .main{padding-bottom:calc(var(--sab) + 96px)}
  .rmorep{border-radius:22px}
  .rfacts{border:0;background:var(--glass-work);border-radius:20px;box-shadow:var(--sh-card)}
  .card{padding:var(--pad);border-radius:22px}
  .rib b{font-size:var(--fs-kpi-sm)}
  .hello h1{font-size:var(--fs-display-sm)}
  .ptitle h1{font-size:var(--fs-h1)}
  .tbl td{padding:11px 10px}
  .tbl th{padding:4px 10px 2px}
  .tbl.stack tr{border-bottom:0;background:var(--zebra);border-radius:16px;padding:10px 12px;margin:0 0 6px}
  .tbl.stack td{background:transparent;border-radius:0}
  .tbl.stack tr:hover td{background:transparent}
  .sectabs{flex-wrap:nowrap;overflow-x:auto;width:auto;scrollbar-width:none}
  .sectabs a{flex:none;min-height:var(--tap)}
  .rtabs a{min-height:var(--tap)}
  .btn,.btn.sm,.btn.xs,.rowacts .btn,.tfilt .btn,.sysbar .btn,a.chip,.chip a{min-height:var(--tap)}
  .rtabs-i{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;border-radius:999px}
  .rtabs-i::-webkit-scrollbar{display:none}
  .rtabs a{flex:none}
}
.updbar{border-radius:999px;background:var(--glass-menu);color:var(--ink);box-shadow:var(--sh-lg)}
.rstamp{border:0;border-radius:999px;background:var(--glass-menu);font-family:var(--mono)}
/* ---- sign in (R62 · the mockup's Sign in screen: one glass card with the full logo) ---- */
.lgwrap{min-height:100vh;min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto;place-items:center;padding:calc(32px + var(--sat)) 16px calc(32px + var(--sab))}
.lgcard{width:min(420px,100%);border:0;border-radius:32px;padding:34px 30px 28px;display:flex;flex-direction:column;gap:14px;
  background:var(--glass);-webkit-backdrop-filter:blur(var(--blur)) saturate(1.7);backdrop-filter:blur(var(--blur)) saturate(1.7);box-shadow:var(--glass-sh);animation:sdfxin .6s var(--ease) both} /* design-ok: approved: the public glow drift and the sign-in card fade, off under reduced motion */
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){ .lgcard{background:var(--glass-2)} }
.lgcard .lgart{align-self:center;display:flex;justify-content:center;margin:0 0 4px;filter:drop-shadow(0 10px 20px rgba(31,99,201,.25))}
.lgcard h1{font-size:var(--fs-display-sm);font-weight:300;text-align:center;margin:0} /* design-ok: Sora display weights from the approved glass mockup */
.lgcard .sub{text-align:center;color:var(--muted);margin:0}
.lgcard form{display:flex;flex-direction:column;gap:12px;margin:0}
.lgcard .frow{margin:0}
.lgcard label{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:500;margin:0 0 6px}
.lgcard .frow input,.lgcard .frow select{min-height:48px;font-size:var(--fs-lg)}
.lgcard .btn{width:100%;min-height:48px}
.lgcard .hint{text-align:center;color:var(--muted)}
.lgcard .lgor{display:flex;flex-direction:column;gap:6px;text-align:center;font-size:var(--fs);color:var(--muted);margin:4px 0 0}
.lgcard .lgor a{color:var(--accent);font-weight:500}
.lgcontact{font-family:var(--mono);font-size:var(--fs-2xs);letter-spacing:.06em;color:var(--muted);text-align:center;margin:14px 0 0}
.pwshow{color:var(--accent);border-radius:999px}
.pwshow:hover{background:var(--accent-soft)}
@media(max-width:400px){ .lgcard{padding:26px 18px 22px;border-radius:28px} }
/* ===== G1 · the office shell, the approved glass look with slide-up sheets ===== */
/* a field you click into brightens; no outline box, no ring (owner, 5 Oct 2026) */
input:focus,select:focus,textarea:focus,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;border-color:transparent;background-color:var(--glass-2);box-shadow:inset 0 1px 0 var(--sheen),0 8px 20px -12px var(--shade-2)}
.card input:focus,.card select:focus,.card textarea:focus{background-color:var(--surface)}
.abar select:focus,.abar input:focus{border-color:transparent}
.ck:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* the stacked logo on top of the side menu (open: left; folded: centered) and in the phone's top bar */
.sbrand{padding:6px 10px 14px;min-height:56px}
.sbrand .sbl,.sbrand .sbm{display:inline-flex}
.sbrand .sbm{display:none}
body.navmin .sbrand{padding:6px 0 14px}
.hdr .brand .sdstack{margin:0 4px}
/* the menus, the bell and the search as sheets: their old drop-down boxes are undone inside one */
.gbellsheet .npanel{position:static;display:block;width:auto;max-height:none;overflow:visible;background:transparent;border:0;box-shadow:none;padding:0;inset:auto}
.gbellsheet .nph{padding:0 0 6px}
.gbellsheet .nph strong{font-family:var(--display);font-size:var(--fs-card-lg);font-weight:300} /* design-ok: Sora display weights from the approved glass mockup */
.gbellsheet .npit{background:color-mix(in srgb,var(--glass-2) 70%,transparent);box-shadow:inset 0 1px 0 var(--sheen);border-radius:18px;margin:0 0 6px;padding:12px 16px}
.gbellsheet .npit.unread{background:var(--accent-soft)}
.palsheet .pal{max-width:none;margin:0;background:transparent;box-shadow:none;border-radius:0;overflow:visible}
.palsheet .pal input{min-height:var(--tap);border-radius:16px;background:var(--glass);padding:0 16px;font-size:var(--fs-lg);border:0}
.palsheet .palrs{max-height:none;overflow:visible;padding:8px 0 0}
.palsheet .palit{background:color-mix(in srgb,var(--glass-2) 70%,transparent);border-radius:16px;margin:0 0 4px}
.palsheet .palit:hover,.palsheet .palit.on{background:var(--accent-soft)}
/* VIS1 part C (claude/ADDENDUM-VIS1-SEARCH-DROPDOWN.md, A) · the palette's old OVERLAY (lib.php: .palov position:fixed, inset 0, a dark
   blurred background, 8vh of padding) undone inside the drawer, as .gbellsheet .npanel is above: a fixed .palov took no room, so the
   drawer collapsed to its own padding (83px), and the drawer's transform boxed the "full-screen" overlay into that strip (the grey
   strip with no results). The no-dialog fallback keeps the overlay (this applies only inside the drawer). Both looks. */
dialog.gsheet.palsheet .palov{position:static;inset:auto;display:block;padding:0;background:none;z-index:auto;-webkit-backdrop-filter:none;backdrop-filter:none}
.gnavsheet #side{position:static;display:flex;flex-direction:column;inset:auto;transform:none;width:auto;height:auto;max-height:none;overflow:visible;margin:0;padding:0;background:transparent;box-shadow:none;border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none;z-index:auto}
.gnavsheet #side .sbrand,.gnavsheet #side .sbuild{display:none}
.gnavsheet #side .scat{min-height:52px;background:color-mix(in srgb,var(--glass-2) 70%,transparent);box-shadow:inset 0 1px 0 var(--sheen);border-radius:18px;margin:0 0 6px;width:100%}
.gnavsheet #side .scat.on{background:var(--accent-soft)}
.gnavsheet #side .sflyo{position:static;background:transparent;box-shadow:none;margin:0 0 8px 12px;padding:0}
.gnavsheet #side .ssep{margin:4px 0}
.gmenusheet .gsrc .umrow .thmb{margin-left:auto}
.gmenusheet .gsrc .rl{flex:1}
@media(max-width:820px){ .hdr .brand{padding:0 4px} }
/* ===== G2 · office screens (claude/BRIEF-G-THE-GLASS-LOOK.md: the mockup's Today, Candidates, Timesheets) ===== */
/* bar widths in tenths (no inline styles: the design gate) */
.g2w0{width:0}.g2w1{width:10%}.g2w2{width:20%}.g2w3{width:30%}.g2w4{width:40%}.g2w5{width:50%}.g2w6{width:60%}.g2w7{width:70%}.g2w8{width:80%}.g2w9{width:90%}.g2w10{width:100%}
/* Today: the KPI tiles ("Waiting on you" first), the Waiting rows as queue rows, the Staffing Pipeline */
.ribbon.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
.rib.hot{background-color:var(--glass-work);background-image:linear-gradient(160deg,var(--accent-soft),transparent 70%)} /* design-ok: the glass mockup's Today tile tint (BRIEF-G §Today) */
.rib.hot b{color:var(--accent)}
.rib.warn b{color:var(--warn)}
.mdwait .hqhd{display:none}
.mdwait .hq{display:flex;flex-direction:column;gap:6px;list-style:none;margin:0;padding:0}
.mdwait .hqr{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"m n" "s n";gap:6px 12px;align-items:center;padding:10px 12px;border:0;border-radius:16px;background:var(--zebra)}
.mdwait .hqm{grid-area:m;min-width:0}
.mdwait .hqst{grid-area:s;justify-self:start}
.mdwait .hqn{grid-area:n}
.mdwait .hqs{display:block}
.g2fun{display:flex;flex-direction:column;gap:6px}
.g2funr{display:grid;grid-template-columns:minmax(120px,190px) minmax(0,1fr) 48px;gap:14px;align-items:center;min-height:var(--tap);padding:0 10px;border-radius:14px;color:var(--ink);text-decoration:none}
.g2funr:hover{background:var(--soft);text-decoration:none}
.g2funr b{font-family:var(--mono);font-weight:500;text-align:right}
.g2funr .gbar{height:10px}
@media(max-width:640px){ .g2funr{grid-template-columns:minmax(0,110px) minmax(0,1fr) 36px;gap:10px} }
/* Candidates: one glass bar (search, Filters as a sheet, Table or Cards, Map), the "Showing only" chips, Act as a sheet */
.ptitle.hello .acts .btn{display:inline-flex;align-items:center;gap:8px}
.g2fbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;border-radius:22px;padding:8px;margin:0 0 12px}
.g2q{flex:1 1 260px;display:flex;align-items:center;gap:10px;padding:0 14px;min-height:var(--tap);border-radius:16px;background:var(--soft);color:var(--muted);min-width:0}
.g2q input,.g2q input:focus{border:0;background:transparent;min-height:40px;padding:0;flex:1;min-width:0;font:inherit;color:var(--ink);box-shadow:none;outline:0}
.g2q:focus-within{background:var(--glass-2);box-shadow:inset 0 1px 0 var(--sheen),0 8px 20px -12px var(--shade-2)}
.g2filt{position:relative}
.g2filt>summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer}
.g2filt>summary::-webkit-details-marker{display:none}
.g2filt>.g2fp{position:absolute;z-index:40;top:calc(100% + 8px);left:0;width:min(420px,90vw);background:var(--glass-menu);border-radius:20px;box-shadow:var(--sh-lg);padding:16px}
.g2fp{display:flex;flex-direction:column;gap:12px}
.g2picks{display:flex;gap:8px;flex-wrap:wrap}
.g2pk{position:relative;display:inline-flex;align-items:center;min-height:var(--tap)}
.g2pk input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.g2pk:has(input:checked){background:var(--accent-soft);color:var(--on-accent-soft)}
.g2pk:has(input:focus-visible){box-shadow:0 0 0 3px var(--accent-soft)}
.g2facts{display:flex;flex-direction:column;gap:8px}
.g2vm{display:flex;gap:4px;padding:4px;border-radius:999px;background:var(--soft)}
.g2vm a{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;color:var(--muted);text-decoration:none;font-weight:500;white-space:nowrap}
.g2vm a:hover{background:var(--soft-2);color:var(--ink);text-decoration:none}
.g2vm a.on{background:var(--solid);color:var(--on-accent-soft);font-weight:600;box-shadow:0 4px 12px -6px var(--shade-2)}
.g2fon{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.g2fchip{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 10px 0 14px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:var(--fs-sm);text-decoration:none}
.g2fchip:hover{text-decoration:none;background:var(--soft-2);color:var(--ink)}
.g2fchip .ic{width:14px;height:14px}
.g2actsheet .actp{position:static;display:flex;flex-direction:column;gap:10px;min-width:0;background:transparent;box-shadow:none;border:0;padding:0}
.g2actsheet .actp .lnk{display:flex;align-items:center;min-height:52px;padding:0 16px;border-radius:16px;background:color-mix(in srgb,var(--glass-2) 70%,transparent);color:var(--ink);font-size:var(--fs);text-decoration:none}
.g2actsheet .actp .rowf{display:flex;gap:8px}.g2actsheet .actp select{flex:1;min-height:var(--tap)}
@media(max-width:640px){ .g2fbar .g2q{flex-basis:100%} .g2fbar{gap:8px} }
/* ===== G2c · the other office lists and records (HANDOFF §220) ===== */
/* the record head (record_header): the candidate record's glass head for every other record */
.rback{display:inline-flex;align-items:center;gap:6px;min-height:var(--tap);padding:0 14px 0 8px;margin:0 0 10px -8px;border-radius:999px;color:var(--muted);font-weight:500;font-size:var(--fs-sm);text-decoration:none}
.rback:hover{background:var(--soft);color:var(--ink);text-decoration:none}
.rback svg.ic,.rhg svg.ic{width:18px;height:18px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rhead.rhg{position:relative;z-index:auto;margin:0 0 14px;padding:20px 22px;border:0;border-radius:26px;background:var(--glass-work)}
.rhead.rhg.tabbed{margin-bottom:14px;padding-bottom:20px}
.rhg .rtop{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rhg.rhgt .rtop{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px 20px}
.rhgring{display:inline-flex;padding:3px;border-radius:50%;background:linear-gradient(160deg,var(--b2),var(--btn))} /* design-ok: the approved record mockup's ring (BRIEF-G2 §1) */
.rhgini{width:64px;height:64px;border-radius:50%;border:3px solid var(--solid);display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:var(--fs-kpi-sm)}
.rhgav .ravatar,.rhgav img{display:block}
.rhgid{min-width:0;display:flex;flex-direction:column;gap:4px}
.rhgid .crumb{margin:0}
.rhgid h1{font-size:clamp(26px,2.6vw,36px);font-weight:300;line-height:1.1;margin:0;overflow-wrap:anywhere} /* design-ok: the approved mockup's light name (BRIEF-G2 §1) */
.rhgsub{margin:0;color:var(--muted);overflow-wrap:anywhere}
.rhgpin{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.rhg .racts{justify-content:flex-end;gap:8px}
.rhg .rfacts.rfmain{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin:16px 0 0;align-items:stretch}
.rhg .rfmain .rfact{border-radius:16px;background:var(--zebra);padding:10px 14px;justify-content:center}
.rhg .rfmain .rfmore{justify-self:start;align-self:center}
.rhg .rfrest{margin-top:10px}
/* filter rows of links or buttons (.tfilt, the orders' and the board's chip rows): one glass segment, the chosen one filled */
.tfilt{gap:4px;padding:4px;border-radius:22px;background:var(--glass-work);box-shadow:var(--sh-card);width:max-content;max-width:100%;margin:0 0 12px;align-items:center}
.tfilt .btn,.tfilt .btn.ghost,.tfilt .btn.sm{background:transparent;color:var(--muted);box-shadow:none;border:0;min-height:36px;border-radius:999px;font-weight:500}
.tfilt .btn:hover{background:var(--soft);color:var(--ink)}
.tfilt .btn.on,.tfilt .btn[aria-current],.tfilt .btn[aria-selected="true"],.tfilt a.btn:not(.ghost){background:var(--solid);color:var(--on-accent-soft);font-weight:600;box-shadow:0 4px 12px -6px var(--shade-2)}
.tfilt input[type=search],.tfilt select{min-height:36px;border-radius:999px}
form.tfilt{width:auto}
/* "Save this view" and "Columns": sheets now (gmenu), so their panels do not need a box of their own */
.viewbar details.gmenu>summary,.colbar details.gmenu>summary{display:inline-flex;align-items:center;min-height:var(--tap);padding:0 14px;border-radius:999px;background:var(--soft);color:var(--ink);font-weight:500;cursor:pointer;list-style:none}
.viewbar details.gmenu>summary::-webkit-details-marker,.colbar details.gmenu>summary::-webkit-details-marker{display:none}
.gsheet .gsrc .viewsave,.gsheet .gsrc .colpick{background:transparent;border:0;padding:0;margin:0;max-width:none}
/* the office list bar (core/g2list.php): the Candidates bar for every list with a search box */
.g2fn{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--btn);color:var(--on-btn);font-size:var(--fs-2xs);font-weight:600}
.g2fbar .g2qgo{min-height:var(--tap)}
.g2fgo{justify-content:flex-end}
.g2tools{display:flex;gap:8px 12px;align-items:center;flex-wrap:wrap;margin:0 0 12px}
.g2tools .viewbar,.g2tools .colbar{margin:0}
/* a fold's small chevron, drawn by a mask (was two borders) */
.btn.teal,.btn.teal:hover{background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.3)} /* design-ok: G2c · a "teal" button is the blue action button in the office (white words on blue) */
:root{--chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 5l7 7-7 7' fill='none' stroke='black' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
@media(max-width:820px){
  html[data-surface] .rhead.rhg,.rhead.rhg{-webkit-backdrop-filter:none;backdrop-filter:none;padding:16px;border-radius:22px}   /* the phone action bar is fixed: a blurred parent would hold it inside the head */
  .rhg.rhgt .rtop{grid-template-columns:auto minmax(0,1fr)}
  .rhgini{width:52px;height:52px;font-size:var(--fs-h2)}
  .rhg .rfacts{background:transparent;box-shadow:none;border-radius:0;padding:0}
  .rhg .rfacts.rfmain{grid-template-columns:repeat(2,minmax(0,1fr))}
  .tfilt{width:auto;border-radius:999px}
  .rhg .racts{justify-content:flex-start}
}.tiph{position:relative;display:inline-flex;vertical-align:middle;margin-left:6px}
.tipb{width:22px;height:22px;padding:0;border:0;background:transparent;color:var(--muted);border-radius:50%;cursor:pointer;display:grid;place-items:center;flex:none}
.tipb svg{width:16px;height:16px}
.tiph .tipb{min-height:0;min-width:0;height:22px;position:relative}
.tiph .tipb::after{content:"";position:absolute;inset:-11px}
.tipb:hover,.tipb:focus-visible,.tiph.on .tipb{background:var(--navy-l);color:var(--navy)}
.tipp{position:absolute;left:-8px;top:calc(100% + 6px);z-index:60;width:max-content;max-width:min(340px,80vw);
  background:var(--ink);color:var(--surface);border-radius:10px;padding:11px 14px;font-size:var(--fs-sm);line-height:1.55;font-weight:400;letter-spacing:0;text-transform:none;
  box-shadow:var(--sh-lg);display:none;text-align:left;white-space:normal}
@keyframes tipin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.tipp.flip{left:auto;right:-8px}
.tipp::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px}
.tipp a{color:inherit;text-decoration:underline}
.tipl{display:block}.tipl+.tipl{margin-top:8px}
.tiph:hover .tipp,.tiph:focus-within .tipp,.tiph.on .tipp{display:block;animation:tipin .15s ease-out}
.tipsheetbg{display:none}
@media(max-width:820px){
  .tiph .tipp{position:fixed;left:0;right:0;top:auto;bottom:0;max-width:none;width:auto;border-radius:18px 18px 0 0;padding:20px 20px calc(24px + var(--sab));font-size:var(--fs);
    background:var(--surface);color:var(--ink);box-shadow:0 -12px 32px rgba(0,0,0,.25);transform:translateY(12px);z-index:95}
  .tiph .tipp,.tiph:hover .tipp,.tiph:focus-within .tipp{display:none}
  .tiph.on .tipp{display:block;right:0;left:0}
  .tiph.on .tipsheetbg{display:block;position:fixed;inset:0;background:rgba(6,10,20,.45);z-index:94}
  html.tipopen body *{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
  html.tipopen .fx,html.tipopen [data-fx]{animation:none!important;transform:none!important}
  .tipp a{color:var(--navy)}
}
/* G1d · the tour has NO spotlight: no ring and no dark cut-out (G1c's .tourspot raised a section above an open drawer, white and
   ringed in teal: the owner's "green outlined box"). The tip card sits by its section with a small pointer, below the scrim
   and every drawer (--z-tip), and it closes itself when a drawer opens (the script below). */
.tour{position:absolute;z-index:var(--z-tip,60);width:min(330px,calc(100vw - 24px));background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;
  padding:16px;box-shadow:var(--sh-lg);animation:tourin .18s ease-out}
.tour::before{content:"";position:absolute;left:var(--tourx,28px);top:-7px;width:12px;height:12px;background:inherit;border-radius:2px;transform:rotate(45deg);box-shadow:-1px -1px 0 var(--line)}
.tour.above::before{top:auto;bottom:-7px;box-shadow:1px 1px 0 var(--line)}
@keyframes tourin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tourk{font-size:var(--fs-xs);font-weight:600;color:var(--accent,var(--navy));margin:0 0 4px}
.tourh{font-size:var(--fs);font-weight:700;margin:0 0 6px}
.tourb{font-size:var(--fs);line-height:1.55;color:var(--muted)}
.toura{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media(max-width:820px){.tour{position:fixed;left:12px!important;right:12px;width:auto;top:auto!important;bottom:calc(var(--tabh) + var(--sab) + 12px)}.tour::before{display:none}}
/* G1d · on a phone a ? explanation opens as a real drawer from the bottom (SDSheet), so it follows every drawer rule */
.gtipsheet .gbody .tipl{display:block;font-size:var(--fs);line-height:1.55}.gtipsheet .gbody .tipl+.tipl{margin-top:10px}
@media(prefers-reduced-motion:reduce){.tipp,.tour{animation:none!important}}.vbtn{display:flex;width:fit-content;align-self:flex-start;align-items:center;gap:6px;margin:6px 0 0;padding:4px 12px;min-height:32px;width:auto;border:1px solid var(--line);border-radius:var(--pill);background:var(--surface);color:var(--muted);font:inherit;font-size:var(--fs-sm);font-weight:400;line-height:1;cursor:pointer;box-shadow:none}.vbtn:hover{background:var(--bg);color:var(--ink)}.vbtn svg{width:16px;height:16px;flex:none}.vbtn.on{color:var(--bad);background:var(--bad-bg);font-weight:600}.vst{display:block;font-size:var(--fs-xs);color:var(--muted);margin-top:2px;overflow-wrap:anywhere}.vst:empty{display:none}.vbtn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}@media(pointer:coarse){.vbtn{min-height:44px;padding:8px 14px}}.cmscroll{display:flex;flex-direction:column;gap:2px;overflow-y:auto;overscroll-behavior:contain;padding:8px 2px}.cmday{display:flex;justify-content:center;margin:12px 0 6px}.cmday span{font-size:var(--fs-xs);color:var(--muted);background:var(--surface-3);padding:3px 10px;border-radius:var(--pill)}.cmm{position:relative;display:flex;flex-direction:column;max-width:min(78%,560px);margin-top:2px}.cmm.end{margin-bottom:8px}.cmm.me{align-self:flex-end;align-items:flex-end}.cmm.them{align-self:flex-start;align-items:flex-start}.cmb{padding:9px 13px;border-radius:18px;line-height:1.45;font-size:var(--fs);overflow-wrap:anywhere;white-space:normal}.cmm.me .cmb{background:var(--navy);color:var(--on-navy);border-bottom-right-radius:6px}.cmm.them .cmb{background:var(--surface-3);color:var(--ink);border-bottom-left-radius:6px}.cmai{font-size:var(--fs-xs);font-weight:700;letter-spacing:.04em;color:var(--navy);border:1px solid currentColor;border-radius:var(--pill);padding:0 6px;line-height:16px}.cmagentbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 16px;border-bottom:1px solid var(--line);background:var(--surface-2);font-size:var(--fs-sm)}.cmagentbar form{margin:0}.cmagentbar details{width:100%}.cmagentbar pre{white-space:pre-wrap;font:inherit;margin:6px 0 0}.cmm.them.fac .cmb{background:var(--teal-l)}.cmm.them.ofc .cmb{background:var(--navy-l)}.cmtabs{display:flex;gap:6px;margin:0 0 12px}.cmtabs a{padding:8px 14px;border-radius:var(--pill);border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:var(--fs-sm);font-weight:600;min-height:var(--tap);display:inline-flex;align-items:center}.cmtabs a.on{background:var(--navy);border-color:transparent;color:var(--on-navy)}.cmm.me:not(.end) .cmb{border-bottom-right-radius:18px}.cmm.them:not(.end) .cmb{border-bottom-left-radius:18px}.cmm.down .cmb{background:transparent;color:var(--muted);border:1px dashed var(--divider);font-style:italic}.cmmeta{font-size:var(--fs-xs);color:var(--muted);margin-top:3px;padding:0 6px;display:flex;gap:6px;flex-wrap:wrap}.cmrc{color:var(--muted);font-weight:600}.cmflag{color:var(--warn);font-weight:600}.cmm.sys{align-self:center;max-width:90%;text-align:center;margin:8px 0}.cmm.sys span{font-size:var(--fs-sm);color:var(--muted)}.cmm.jrn{align-self:center;max-width:92%;text-align:center;margin:6px 0}.cmm.jrn span{display:inline-block;font-size:var(--fs-sm);color:var(--muted);border:1px dashed var(--divider);border-radius:var(--pill);padding:2px var(--s3);overflow-wrap:anywhere}.cmm.jrn em{font-style:normal}.cmmod{position:static}.cmmod>summary{position:absolute;top:0;left:-48px;list-style:none;cursor:pointer;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:20px;line-height:1}.cmm.them .cmmod>summary{left:auto;right:-48px}.cmmod>summary span{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface-3);border:1px solid var(--line)}.cmmod>summary::-webkit-details-marker{display:none}.cmmod>summary:hover span,.cmmod[open]>summary span{background:var(--navy-l);color:var(--navy)}.cmmod>summary:focus-visible{outline:2px solid var(--navy);outline-offset:2px}.cmmodb{position:absolute;z-index:5;top:calc(100% + 4px);right:0;width:min(280px,82vw);display:flex;flex-direction:column;gap:4px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:8px;box-shadow:0 8px 24px rgba(11,18,32,.18)}.cmm.them .cmmodb{right:auto;left:0}.cmmodh{margin:0 0 2px;font-size:var(--fs-xs);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.cmmodb form{margin:0}.cmmod .cmmodb button.btn{width:100%;min-height:44px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;gap:1px;white-space:normal;padding:6px 10px}.cmmod .cmmodb button.btn span{font-size:var(--fs-xs);font-weight:400;color:var(--muted)}.cmcompose{display:flex;gap:8px;align-items:flex-end;border-top:1px solid var(--line);padding:10px 0 0}.cmpad{padding:14px}.cmfoot{padding:0 16px}.cmgap{margin:8px 0 0}.cmta{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.cmta .vbtn{align-self:flex-start}.cmcompose textarea{flex:1;min-width:0;width:100%;min-height:48px;max-height:40vh;resize:vertical;font:inherit;font-size:var(--fs-lg);padding:12px 14px;border:1px solid var(--line);border-radius:22px;background:var(--soft);color:var(--ink)}.cmcompose .cmsend{flex:0 0 auto;min-width:48px;min-height:48px;border-radius:24px}.cmwarn{border:0;background:var(--warn-bg);color:var(--ink);border-radius:var(--r);padding:10px 12px;margin:8px 0;font-size:var(--fs-sm)}.cmwarn strong{color:var(--warn)}.cmerr{border:0;background:var(--bad-bg);color:var(--ink);border-radius:var(--r);padding:10px 12px;margin:8px 0;font-size:var(--fs-sm)}.cmbanner{font-size:var(--fs-sm);color:var(--muted);background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r);padding:9px 12px;margin:8px 0 0}.cmjump{position:sticky;bottom:8px;align-self:center;margin-top:-40px;z-index:3}.cmjob{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}.cmjobk{flex:0 0 100%;font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.cmjobt{font-size:var(--fs);color:var(--ink);overflow-wrap:anywhere}.cmjobs{font-size:var(--fs-xs);font-weight:700;color:var(--muted);border:1px solid var(--line);border-radius:var(--pill);padding:0 8px}.cmjobm{flex:1 1 100%;font-size:var(--fs-sm);color:var(--muted);overflow-wrap:anywhere}.cmjobl{font-size:var(--fs-sm);font-weight:600;min-height:var(--tap);display:inline-flex;align-items:center}.pcthread .cmjob{margin:0 -8px 6px;border:1px solid var(--line);border-radius:var(--r)}.cmjchip{display:inline-flex;align-items:baseline;gap:5px;max-width:100%;min-width:0;font-size:var(--fs-xs);color:var(--ink);background:var(--navy-l);border-radius:var(--pill);padding:1px 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.cmjchip b{font-weight:700;color:var(--navy);flex:0 0 auto}.cmrow .jl{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin:1px 0}.pcth{display:flex;gap:8px;align-items:center;margin:-4px 0 6px}.pcth h2{margin:0}.pcback{flex:0 0 auto;width:44px;height:44px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-h1);line-height:1;color:var(--navy);text-decoration:none;border-radius:50%}.pcback:hover{background:var(--surface-3);text-decoration:none}.pcscroll{max-height:calc(100dvh - 360px);min-height:260px;margin:0 -8px}.pcthread .cmcompose{border-top:0;padding-top:8px}.pcthread .cmcompose .cmsend{padding:0 14px}.pc .cmrow{margin:0 -18px;padding-left:18px;padding-right:18px}.pc .cmrow:last-child{border-bottom:0}@media (prefers-reduced-motion:no-preference){.cmm.new{animation:cmin .18s ease-out}@keyframes cmin{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}.cmfab{position:fixed;right:18px;bottom:18px;z-index:60;width:56px;height:56px;min-height:56px;padding:0;border-radius:50%;border:0;background:var(--navy);color:var(--on-navy);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px 18px rgba(11,18,32,.25)}.cmfab svg{width:26px;height:26px}.cmfab:hover{background:var(--navy-d)}.cmfab:focus-visible{outline:3px solid var(--teal);outline-offset:3px}.cmfabn{position:absolute;top:-2px;right:-2px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:var(--bad);color:var(--on-bad);font-size:var(--fs-xs);font-weight:700;font-style:normal;display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}.cmfabn[hidden]{display:none}.cmfabp{position:fixed;right:18px;bottom:86px;z-index:61;width:min(360px,calc(100vw - 24px));max-height:min(70vh,520px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 12px 32px rgba(11,18,32,.22);overflow:hidden}.cmfabp[hidden]{display:none}.cmfabh{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}.cmfabh a{font-size:var(--fs-sm);font-weight:600}.cmfabl{overflow-y:auto}.cmfabl .small{padding:14px}.cmrow{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-bottom:1px solid var(--line-s);text-decoration:none;color:var(--ink);min-height:var(--tap)}.cmrow:hover{background:var(--surface-2);text-decoration:none}.cmrow .top{display:flex;gap:8px;align-items:baseline}.cmrow .top strong{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmrow .at{font-size:var(--fs-xs);color:var(--muted);flex:0 0 auto}.cmrow .sn{font-size:var(--fs-sm);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmrow.un strong,.cmrow.un .sn{color:var(--ink);font-weight:700}.cmrow .un-n{background:var(--navy);color:var(--on-navy);border-radius:var(--pill);font-size:var(--fs-xs);font-weight:700;padding:1px 8px;flex:0 0 auto}@media (max-width:860px){.cmfab{bottom:calc(var(--tabh) + var(--sab) + 14px)}.cmfabp{bottom:calc(var(--tabh) + var(--sab) + 82px);right:12px}body.hasrec .cmfab{bottom:calc(var(--sab) + 84px)}body.hasrec .cmfabp{bottom:calc(var(--sab) + 152px)}body:has(.cmfab) .main{padding-bottom:calc(var(--tabh) + var(--sab) + 90px)}body.hasrec:has(.cmfab) .main{padding-bottom:calc(var(--sab) + 156px)}}html:not(.ui-nl){
  /* C2 · the main ink a touch softer; the second ink for labels */
  --ink:#1A2332; --on-soft:#1A2332; --cl-ink2:#3B4556;
  /* C5 · a field reads as a field: a pale fill AND a fine edge; focus white with a soft blue ring */
  --cl-field:#F5F7FB; --cl-fedge:rgba(14,21,34,.18); --cl-ffocus:#FFFFFF; --cl-fring:rgba(31,99,201,.16);
  /* C4 · the one card (white at 88%), the fine line between list rows and between sections */
  --cl-card:rgba(255,255,255,.88); --cl-line:rgba(14,21,34,.09); --cl-line2:rgba(14,21,34,.16);
  /* C6 · the five tones' still dots, and the grey tone */
  --cl-grey:#4E596D; --cl-grey-bg:#ECEFF4;
  --cl-okdot:#12A150; --cl-warndot:#C98A00; --cl-baddot:#D33A3A; --cl-infodot:#1F63C9; --cl-greydot:#8792A3;
  /* C12 · "Are you sure?" inside a drop-down: the one solid red, only in the question */
  --cl-bad-top:#C74343; --cl-bad-solid:#A42828; --cl-on-bad-solid:#FFFFFF;
  /* C9 · the toast: an ink pill with white words */
  --cl-toast:#1A2332; --cl-on-toast:#FFFFFF; --cl-toast-btn:rgba(255,255,255,.14);
  /* C5 · the green check by a filled label */
  --cl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%23E2F3E9'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%230B7A3E' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  /* C8 · figures in Sora, tabular; JetBrains Mono only for codes (the build number, a reference) */
  --mono:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --cl-code:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
@media(prefers-color-scheme:dark){ html:not(.ui-nl):not([data-theme="light"]){
  --ink:#EAF0FA; --on-soft:#EAF0FA; --cl-ink2:#C9D3E3;
  --cl-field:#121A2A; --cl-fedge:rgba(255,255,255,.18); --cl-ffocus:#16203A; --cl-fring:rgba(125,179,255,.22);
  --cl-card:rgba(20,28,45,.90); --cl-line:rgba(255,255,255,.08); --cl-line2:rgba(255,255,255,.15);
  --cl-grey:#B0BACB; --cl-grey-bg:#1C2638;
  --cl-okdot:#3DDC84; --cl-warndot:#FFC24D; --cl-baddot:#FF7A7A; --cl-infodot:#7DB3FF; --cl-greydot:#8692A4;
  --cl-bad-top:#D85454; --cl-bad-solid:#B33A3A; --cl-on-bad-solid:#FFFFFF;
  --cl-toast:#EAF0FA; --cl-on-toast:#0B1220; --cl-toast-btn:rgba(0,0,0,.08);
  --cl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%2312291F'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%237BE8A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
} }
html:not(.ui-nl)[data-theme="dark"]{
  --ink:#EAF0FA; --on-soft:#EAF0FA; --cl-ink2:#C9D3E3;
  --cl-field:#121A2A; --cl-fedge:rgba(255,255,255,.18); --cl-ffocus:#16203A; --cl-fring:rgba(125,179,255,.22);
  --cl-card:rgba(20,28,45,.90); --cl-line:rgba(255,255,255,.08); --cl-line2:rgba(255,255,255,.15);
  --cl-grey:#B0BACB; --cl-grey-bg:#1C2638;
  --cl-okdot:#3DDC84; --cl-warndot:#FFC24D; --cl-baddot:#FF7A7A; --cl-infodot:#7DB3FF; --cl-greydot:#8692A4;
  --cl-bad-top:#D85454; --cl-bad-solid:#B33A3A; --cl-on-bad-solid:#FFFFFF;
  --cl-toast:#EAF0FA; --cl-on-toast:#0B1220; --cl-toast-btn:rgba(0,0,0,.08);
  --cl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%2312291F'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%237BE8A8' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
/* EMS keeps Rescue Blue: the .ems scope (core/ui.php glass_tokens_css) re-sets the action colors and is not touched here *//* ===== CL1 · modern Classic (core/classic.php) ===== */
/* ---- C2 · type: the office reads at 16px (17 on a phone), small print never under 14px, headings Sora ---- */
html:not(.ui-nl)[data-surface="work"]{--fs:16px;--fs-sm:14px;--fs-xs:14px;--fs-2xs:13px;--fs-lg:17px;--fs-h2:20px;--fs-row:17px;--fs-card:22px;--fs-card-lg:22px;--fs-kpi:34px;--fs-kpi-sm:30px;--fs-display-sm:30px;--pad:32px;--gap:24px}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"]{--fs:17px;--fs-sm:15px;--fs-xs:15px;--fs-2xs:13px;--fs-lg:18px;--pad:16px;--gap:16px} }
html:not(.ui-nl) :is(code,kbd,.sbuild,.rstamp,.ck kbd,.kbd){font-family:var(--cl-code)}
html:not(.ui-nl) :is(.num,.mono,.rib b,.sv,.tbl td,.mdt,.g2funr b,.gqrow time){font-variant-numeric:tabular-nums}
/* page titles: Sora Light 40 (30 on a phone); card titles Sora 22; the ink softened through the token */
html:not(.ui-nl)[data-surface="work"] :is(.ptitle h1,.hello h1){font-size:40px;font-weight:300;line-height:1.12;letter-spacing:-.02em}
html:not(.ui-nl)[data-surface="work"] .chead h2,html:not(.ui-nl)[data-surface="work"] .gph h2{font-size:22px;font-weight:400;letter-spacing:-.01em}
html:not(.ui-nl) .gsh h2{font-weight:400}
html:not(.ui-nl)[data-surface="work"] :is(.ptitle .sub,.hello p,.hello .mdsum){font-size:var(--fs);color:var(--muted)}
/* C8 option A · labels in plain words (14px 600, sentence case: no JetBrains Mono capitals that wrap "WAITING ON / YOU") */
html:not(.ui-nl) :is(.glbl,.crumb,.rib span,.tbl th,.hqhd,.hq .hqhd,.sfh,.gfld>span,.gtok .gtokl,.gpkl .gpkg,.lgcard label,.rside h2,.rfact b,.lgcontact,.sl,.drawer .dsec,
  .recentp .rh,.palg,.rmorep details summary,.tsper .lbl span,.tsstat span,.ovf dt,.cmmodh,.cmjobk,.sgrp2,.ntbl td[data-l]::before,.permg,.rtagl,.scr .scrlab,.jtrow .jtl,.bklbl,.g3sum span,.clkfld label){
  font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
html:not(.ui-nl) .crumb :is(a,span){letter-spacing:0}
/* the words were written in small letters for the capitals: the first letter is a capital again */
html:not(.ui-nl) :is(.glbl,.crumb,.rib span,.tbl th,.hqhd,.sfh,.gfld>span,.gtok .gtokl,.gpkl .gpkg,.rside h2,.rfact b,.sl,.recentp .rh,.palg,.tsper .lbl span,.tsstat span,.ovf dt,.cmmodh,.cmjobk,.sgrp2,.permg,.rtagl,.scr .scrlab,.jtrow .jtl,.bklbl,.g3sum span,.clkfld label)::first-letter{text-transform:uppercase}
html:not(.ui-nl) .rib span{display:block}
/* C8 option A · figures in Sora 34, tabular (the number tiles, stat cards) */
html:not(.ui-nl)[data-surface="work"] :is(.rib b,.sv){font-family:var(--display);font-weight:400;font-size:34px;line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}
html:not(.ui-nl)[data-surface="work"] .rib b.rbw{font-family:var(--font);font-size:var(--fs-lg);font-weight:500;color:var(--muted)}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] :is(.rib b,.sv){font-size:30px} html:not(.ui-nl)[data-surface="work"] :is(.ptitle h1,.hello h1){font-size:30px} }

/* ---- C3 · one spacing scale: 24 between sections, 16 inside a card, 12 between side by side buttons ---- */
html:not(.ui-nl)[data-surface="work"] .main{padding-left:16px;padding-right:32px}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] .main{padding-left:var(--pad);padding-right:var(--pad)} }
html:not(.ui-nl)[data-surface="work"] :is(.ptitle,.hello){margin-bottom:24px}
html:not(.ui-nl)[data-surface="work"] .chead{margin-bottom:16px}
html:not(.ui-nl)[data-surface="work"] :is(.hello .acts,.racts,.rpacts,.gacts,.rowacts){gap:12px}

/* ---- C4 · ONE CARD: glass white at 88%, 20px corners, 24px inside (20 on a phone), one shadow; never a card in a card ---- */
html:not(.ui-nl)[data-surface="work"] .card{border-radius:20px;padding:24px;background:var(--cl-card);box-shadow:inset 0 1px 0 var(--sheen),var(--sh-card)}
html:not(.ui-nl)[data-surface="work"] .card:has(.tbl,table,form textarea,.frow){background:var(--surface)}
html:not(.ui-nl)[data-surface="work"] :is(.rib,.rside,.statc){border-radius:20px}
html:not(.ui-nl)[data-surface="work"] .rhead.rhg{border-radius:20px;padding:24px}
html:not(.ui-nl)[data-surface="work"] :is(.card,.rhead.rhg) :is(.card){background:transparent;box-shadow:none;padding:0;border-radius:0}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] .card{padding:20px;border-radius:20px} html:not(.ui-nl)[data-surface="work"] .rhead.rhg{padding:20px;border-radius:20px} }
/* the record's grey boxes go: the answers sit on the card (MCRef, "Cards"); no lines between the answers (the owner, 9 Oct 2026) */
html:not(.ui-nl)[data-surface="work"] :is(.rpfact,.rhg .rfmain .rfact,.rpmt){background:transparent;border-radius:0;padding-left:0;padding-right:0;box-shadow:none}
html:not(.ui-nl)[data-surface="work"] :is(.rpfact .lbl,.rpmt .lbl,.rhg .rfact b){font-size:14px;font-weight:600;color:var(--muted);letter-spacing:0;text-transform:none}
html:not(.ui-nl)[data-surface="work"] :is(.rpfact b,.rhg .rfact span){font-size:16.5px}
html:not(.ui-nl)[data-surface="work"] .rpmeta{box-shadow:inset 0 1px 0 var(--cl-line);padding-top:16px;margin-top:4px;gap:12px 20px}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] .rpmeta{grid-template-columns:repeat(2,minmax(0,1fr))} html:not(.ui-nl)[data-surface="work"] .rpmeta>.rpmt:last-child:nth-child(odd){grid-column:1/-1} }

/* ---- Lists: rows line up; a fine line between rows, none inside a row; no grey boxes (MCRef "Lists") ---- */
html:not(.ui-nl)[data-surface="work"] :is(.srow,.lrow,.refrow,.ntrow,.scrow,.cmrec .cmrow,.jrruns li,.ivtpl,.hqr,.mdr,.tdy li,.syschk li,.gqrow){
  background:transparent;border-radius:0;box-shadow:inset 0 1px 0 var(--cl-line);margin-bottom:0}
html:not(.ui-nl)[data-surface="work"] :is(.srow,.lrow,.refrow,.ntrow,.scrow,.cmrec .cmrow,.jrruns li,.ivtpl,.hqr,.mdr,.tdy li,.syschk li,.gqrow):first-child{box-shadow:none}
html:not(.ui-nl)[data-surface="work"] :is(a.srow,a.hqr,a.mdr,a.gqrow,button.gqrow,.hqr,.mdr):hover{background:var(--surface-2)}
html:not(.ui-nl)[data-surface="work"] :is(.gqueue,.mdl){gap:0}
html:not(.ui-nl)[data-surface="work"] .tbl{border-collapse:separate;border-spacing:0}
html:not(.ui-nl)[data-surface="work"] .tbl td{background:transparent;border-radius:0!important;box-shadow:inset 0 1px 0 var(--cl-line);padding:14px 12px}
html:not(.ui-nl)[data-surface="work"] .tbl tbody tr:first-child td{box-shadow:none}
html:not(.ui-nl)[data-surface="work"] .tbl tr:hover td{background:var(--surface-2)}
html:not(.ui-nl)[data-surface="work"] .tbl th{padding:4px 12px 10px}
@media(max-width:820px){
  html:not(.ui-nl)[data-surface="work"] .tbl.stack tr{background:transparent;border-radius:0;box-shadow:inset 0 1px 0 var(--cl-line);margin:0;padding:12px 2px}
  html:not(.ui-nl)[data-surface="work"] .tbl.stack tbody tr:first-child{box-shadow:none}
  html:not(.ui-nl)[data-surface="work"] .tbl.stack td{box-shadow:none;padding:4px 0}
}

/* ---- C1 · buttons: three heights, 36 in rows, 44 everywhere, 52 for the page's one main action ---- */
html:not(.ui-nl)[data-surface="work"] .btn{padding:0 20px;font-size:16px}
:where(html:not(.ui-nl)[data-surface="work"]) .btn{min-height:44px}
/* the HEIGHTS are FLOORS (CL1 fix, r51/r52): 0,1,0 and 0,2,0, so a page that asks for a 44px button in its own card or bar
   (.aisrow .btn, .agboxa .btn, .cmstartrow .btn ... printed after office.css) keeps it, as on 10.1 */
html:not(.ui-nl)[data-surface="work"] :is(.btn.sm,.btn.xs){padding:0 14px;font-size:14.5px}
:where(html:not(.ui-nl)[data-surface="work"]) .btn:is(.sm,.xs){min-height:36px}
html:not(.ui-nl)[data-surface="work"] .hello .acts>.btn:only-child:not(.soft,.ghost,.quiet,.danger){min-height:52px;padding:0 26px;font-size:17px}
html:not(.ui-nl)[data-surface="work"] .btn:where(:not(.ghost,.soft,.quiet,.danger,.teal,.navy)):hover{filter:brightness(1.06);transform:translateY(-1px)}
html:not(.ui-nl)[data-surface="work"] .btn:where(:not(.ghost,.soft,.quiet,.danger,.teal,.navy)):active{filter:brightness(.94);transform:scale(.98)}
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] .btn{min-height:48px;font-size:17px} html:not(.ui-nl)[data-surface="work"] :is(.btn.sm,.btn.xs){min-height:44px;font-size:15.5px} }
/* icon buttons: a 44px circle with the grey fill, in both themes (the dark top bar's white circles, MCRefDark) */
html:not(.ui-nl)[data-surface="work"] :is(.ibtn,.gicb:not(.clear)){background:var(--soft);color:var(--ink)}
html:not(.ui-nl)[data-surface="work"] .hdr .navtog{background:transparent}

/* ---- tabs and chips: the record's chosen tab is the blue button; a filter chip chosen is solid blue with white words ---- */
html:not(.ui-nl)[data-surface="work"] .rtabs a{min-height:44px;font-size:16px;font-weight:600}
html:not(.ui-nl)[data-surface="work"] .rtabs a:not(.on){color:var(--cl-ink2)}
html:not(.ui-nl)[data-surface="work"] .sectabs a{font-size:15px}
html:not(.ui-nl)[data-surface="work"] :is(.tfilt .btn.on,.tfilt .btn[aria-current],.tfilt .btn[aria-selected="true"],.tfilt a.btn:not(.ghost)){
  background-color:var(--btn);background-image:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);box-shadow:0 8px 16px -10px var(--btn)}
html:not(.ui-nl)[data-surface="work"] .tfilt .btn{font-size:14.5px;font-weight:600;color:var(--cl-ink2)}

/* Settings > Who sees each section: the matrix's cells keep "Result only" on one line in a tablet's narrow column */
@media(max-width:820px){ html:not(.ui-nl)[data-surface="work"] .seccell{font-size:14px;padding-inline:2px;white-space:nowrap} }
/* ---- C6 · status pills: one size (28px), five tones from tokens, a still dot ---- */
html:not(.ui-nl) .chip:is(.ok,.warn,.bad,.info){display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:600;line-height:1;border:0}
html:not(.ui-nl) .chip:is(.ok,.warn,.bad,.info)::before{content:"";flex:none;width:7px;height:7px;border-radius:50%}
html:not(.ui-nl) .chip.ok{background:var(--ok-bg);color:var(--ok)} html:not(.ui-nl) .chip.ok::before{background:var(--cl-okdot)}
html:not(.ui-nl) .chip.warn{background:var(--warn-bg);color:var(--warn)} html:not(.ui-nl) .chip.warn::before{background:var(--cl-warndot)}
html:not(.ui-nl) .chip.bad{background:var(--bad-bg);color:var(--bad)} html:not(.ui-nl) .chip.bad::before{background:var(--cl-baddot)}
html:not(.ui-nl) .chip.info{background:var(--info-bg);color:var(--info)} html:not(.ui-nl) .chip.info::before{background:var(--cl-infodot)}
html:not(.ui-nl) .chip.neutral{background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) .chip[data-wrap-ok]:is(.ok,.warn,.bad,.info){height:auto;min-height:28px;line-height:1.3;white-space:normal;padding-block:4px}
/* a pipeline stage keeps the colours the office chose for it (Settings, Stages), in the same pill with a still dot */
html:not(.ui-nl) .chip[style]{display:inline-flex;align-items:center;gap:7px;height:28px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:600;line-height:1}
html:not(.ui-nl) .chip[style]::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.75}

/* ---- C5 · FIELDS: 44px (48 on a phone), the label above, a pale fill AND a fine edge, so an empty field always reads as a place
   to type; focus white with a soft blue ring; filled white with a green check by the label; an error a red edge and red words.
   The search pills, the picker's type box, the chat boxes and the new look's wells keep their own (NL's list, G8a). ---- */
html:not(.ui-nl) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not([multiple]):not([size]),textarea):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.hsrch,.tsbar,.nlw,.bd) *):not(:has(> svg) > *):not(.gpknat){
  background-color:var(--cl-field);border:1px solid transparent;border-radius:12px;box-shadow:inset 0 0 0 1px var(--cl-fedge);color:var(--ink);min-height:44px;font-size:var(--fs)}
html:not(.ui-nl) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not([multiple]):not([size]),textarea):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.hsrch,.tsbar,.nlw,.bd) *):not(:has(> svg) > *):not(.gpknat):hover{background-color:var(--cl-field)}
html:not(.ui-nl) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not([multiple]):not([size]),textarea):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.hsrch,.tsbar,.nlw,.bd) *):not(:has(> svg) > *):not(.gpknat):focus{
  background-color:var(--cl-ffocus);border-color:transparent;outline:none;box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),textarea).clfill:not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.hsrch,.tsbar,.nlw,.bd) *):not(:has(> svg) > *):not(.gpknat):not(:focus){background-color:var(--cl-ffocus)}
html:not(.ui-nl) :is(input,select,textarea):is(:user-invalid,[aria-invalid="true"]):not(:focus){box-shadow:inset 0 0 0 1.5px var(--bad)}
html:not(.ui-nl) select[multiple],html:not(.ui-nl) select[size]{background-color:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);border-radius:12px}
html:not(.ui-nl) :is(input,textarea)::placeholder{color:var(--faint);opacity:1}
@media(max-width:820px){ html:not(.ui-nl) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not([multiple]):not([size])):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.hsrch,.tsbar,.nlw,.bd) *):not(:has(> svg) > *):not(.gpknat){min-height:48px} }
/* the label above its field: 14px 600, sentence case, the second ink (the office's were JetBrains Mono capitals) */
html:not(.ui-nl) :is(.frow>label:not(.chk),.frow2>div>label:not(.chk),.frow2>label:not(.chk),.gfld>span,.pair>div>label:not(.chk),.npair>div>label:not(.chk)){
  font-family:var(--font);font-size:14px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--cl-ink2)}
html:not(.ui-nl) label:not(.chk,.gpick,.g2pk,.g2q,.vh,.sr):has(> :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea)){font-size:14px;font-weight:600;color:var(--cl-ink2);letter-spacing:0;text-transform:none}
html:not(.ui-nl) :is(input,select,textarea){font-weight:400}
html:not(.ui-nl) label.clok:not(:has(input,select,textarea))::after{content:"";display:inline-block;width:18px;height:18px;margin-left:6px;vertical-align:-4px;background:var(--cl-okck) center/18px 18px no-repeat}
/* "(optional)" in grey after the label (CL0a found .opt clashing with a drop-down row: the marker is .optl) */
html:not(.ui-nl) .optl{font-weight:500;color:var(--faint)}
/* errors in red words under the field */
html:not(.ui-nl) :is(.ferr,.fielderr){display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--bad);margin:6px 0 0}
html:not(.ui-nl) :is(.ferr,.fielderr)::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cl-baddot)}
/* a choice: the round pale blue chevron says "pick" */
html:not(.ui-nl) select:not([multiple]):not([size]):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.tsbar,.bd) *):not(:has(> svg) > *):not(.gpknat){-webkit-appearance:none;appearance:none;padding-right:38px!important;background-image:var(--chev-img);background-repeat:no-repeat;background-position:right 12px center}
/* CL1 fix (r27_page): the same selector as the field rule above, so the rounded list (base-select, as on 10.1) wins where the
   browser has it; the arrow stays the background chevron (core/ui.php hides ::picker-icon) */
@supports (appearance:base-select){ html:not(.ui-nl) select:not([multiple]):not([size]):not(:is(.g2q,.ck,.palline,.pal,.gpkq,.tbbox,.tbfind,.bdsearch,.tsbar,.bd) *):not(:has(> svg) > *):not(.gpknat){appearance:base-select} }
/* the password's Show sits inside its field, centred (the wrapper is a block holding only the field) */
html:not(.ui-nl) .pwwrap{position:relative;display:block}
html:not(.ui-nl) .pwwrap>input{width:100%;padding-right:84px}
html:not(.ui-nl) .pwwrap .pwshow{transform:none}   /* top:calc(50% - 22px) already centres it: the older translateY(-50%) lifted it 22px onto the field's edge */
/* the search pill in the office top bar reads as a field too (MCRef: the fill and the fine edge) */
@media(min-width:821px){ html:not(.ui-nl)[data-surface="work"] .ck{background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);border-radius:999px} html:not(.ui-nl)[data-surface="work"] .ck:hover{background:var(--cl-field)} }
html:not(.ui-nl)[data-surface="work"] .g2q{background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);border-radius:999px}
html:not(.ui-nl)[data-surface="work"] .g2q:focus-within{background:var(--cl-ffocus);box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl)[data-surface="work"] .gtok{background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);border-radius:12px}
html:not(.ui-nl)[data-surface="work"] .gtok:hover{background:var(--cl-field)}

/* ---- THE ONE FORM GRID .fg (C5): 4 columns on a computer, 2 under 900px, 1 under 560px; spans s1 to s4; tk lines a tick box up
   with the fields beside it. Every field in every section starts on the same edges (the owner: "all fields should auto align
   based on the screen size"). Applied by class; a form moves onto it as its screen is rebuilt (CL2 onward). ---- */
html:not(.ui-nl) .fg{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px;align-items:start}
html:not(.ui-nl) .fg>*{min-width:0;margin:0}
html:not(.ui-nl) .fg>.s1{grid-column:span 1} html:not(.ui-nl) .fg>.s2{grid-column:span 2} html:not(.ui-nl) .fg>.s3{grid-column:span 3} html:not(.ui-nl) .fg>.s4{grid-column:span 4}
html:not(.ui-nl) .fg>.tk{padding-top:34px}
html:not(.ui-nl) .fg :is(input:not([type=checkbox],[type=radio]),select,textarea){width:100%}
html:not(.ui-nl) .fg .fld{display:flex;flex-direction:column;gap:6px;min-width:0}
html:not(.ui-nl) .fg .fld>label{font-size:14px;font-weight:600;color:var(--cl-ink2);display:flex;align-items:center;gap:6px;min-height:22px}
@media(max-width:900px){ html:not(.ui-nl) .fg{grid-template-columns:repeat(2,minmax(0,1fr))} html:not(.ui-nl) .fg>:is(.s3,.s4){grid-column:span 2} }
@media(max-width:560px){ html:not(.ui-nl) .fg{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .fg>*{grid-column:span 1!important} html:not(.ui-nl) .fg>.tk{padding-top:0} }
/* the older two-column rows keep their grid, with the form grid's column gap */
html:not(.ui-nl) .frow2{column-gap:20px}

/* ---- the shell: the floating glass side menu and top bar, as Classic, refined (MCRef "shell") ---- */
html:not(.ui-nl)[data-surface="work"] .side{border-radius:24px}
html:not(.ui-nl)[data-surface="work"] :is(.scat,.snav){min-height:44px;font-size:16px;color:var(--cl-ink2)}
html:not(.ui-nl)[data-surface="work"] :is(.scat.on,.snav.on){color:var(--on-accent-soft)}
html:not(.ui-nl)[data-surface="work"] .sfh{font-size:13px;color:var(--faint)}
html:not(.ui-nl)[data-surface="work"] .snav .snavn{font-family:var(--font);font-size:13px;font-weight:600}
@media(min-width:821px){
  html:not(.ui-nl)[data-surface="work"]{--hh:92px}
  html:not(.ui-nl)[data-surface="work"] .hdr{height:64px;border-radius:22px;padding:0 12px 0 14px;gap:12px}
}
/* the phone's top bar: the menu button and the logo together on the left; search, recent, bell and the account at the right edge
   (MCPhToday; the owner, 9 Oct 2026: "the StaffDash logo on the left next to the menu (nav) button, with the other buttons at the
   right edge") */
@media(max-width:820px){
  html:not(.ui-nl)[data-surface="work"] .hdr{gap:6px}
  html:not(.ui-nl)[data-surface="work"] .hdr .brand{margin-right:auto}
  html:not(.ui-nl)[data-surface="work"] .hdr .hsp{display:none}
  /* CL1 fix (g2c_page): a record's action bar is fixed to the bottom on a phone but lives inside the glass head, which is its
     own layer (.glass isolates), so a later card's positioned heading (.chead) painted OVER the bar where they met and took
     its taps (the larger type moved the Profile card's heading under it). The head's layer sits just under the top bar (40). */
  html:not(.ui-nl)[data-surface="work"] .glass:has(.racts){z-index:39}
}

/* ---- C9 · empty states, the toast (an ink pill with white words, Undo where it applies), errors under a form ---- */
html:not(.ui-nl) .gtoast{background:var(--cl-toast);color:var(--cl-on-toast);-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 18px 40px -16px var(--shade-2)}
html:not(.ui-nl) .gtoast span{color:var(--cl-on-toast)}
html:not(.ui-nl) .gtoast .btn{background:var(--cl-toast-btn);background-image:none;color:var(--cl-on-toast);box-shadow:none}/* ===== CL1 · C12 · the option menus as drop-downs (office, computer, Classic) ===== */
html:not(.ui-nl) dialog.gsheet.gdrop{position:fixed;inset:auto;left:var(--gdl,12px);top:var(--gdt,12px);right:auto;bottom:auto;margin:0;
  width:max-content;min-width:260px;max-width:min(400px,calc(100vw - 24px));max-height:var(--gdmh,70vh);overflow-y:auto;overscroll-behavior:contain;
  padding:6px;gap:0;border:0;border-radius:14px;color:var(--ink);background:var(--surface);background-image:none;-webkit-backdrop-filter:none;backdrop-filter:none;
  box-shadow:0 0 0 1px var(--cl-line),0 24px 48px -20px var(--shade-2),0 4px 10px -4px var(--shade);transform:none;transform-origin:50% 0;animation:clDropIn .14s var(--ease) both}
html:not(.ui-nl) dialog.gsheet.gdrop.up{transform-origin:50% 100%;animation-name:clDropUp}
html:not(.ui-nl) dialog.gsheet.gdrop.out{animation:clDropOut .12s var(--ease) both}
html:not(.ui-nl) dialog.gsheet.gdrop::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}
html:not(.ui-nl) dialog.gsheet.gdrop>.ggrab{display:none}
/* VIS1 part C (B) · the search on a computer: a panel under the top bar's search box (placeTop adds .palpanel and sets --gbt, the
   bar's bottom, and --gtl, the box's left), 640px wide, as tall as the screen allows; the box stays put at the top of the panel
   and the results scroll under it. The same solid surface, edge and shadow as the drop-downs; no dimming behind it. */
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel{position:fixed;inset:auto;top:var(--gbt,72px);left:var(--gtl,14px);right:auto;bottom:auto;margin:0;
  width:min(640px,calc(100vw - 28px));max-height:calc(100vh - var(--gbt,72px) - 16px);max-height:calc(100dvh - var(--gbt,72px) - 16px);
  flex-direction:column;overflow:hidden;padding:12px;gap:0;border:0;border-radius:14px;color:var(--ink);background:var(--surface);background-image:none;
  -webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:0 0 0 1px var(--cl-line),0 24px 48px -20px var(--shade-2),0 4px 10px -4px var(--shade);
  transform:none;transform-origin:50% 0;animation:clDropIn .14s var(--ease) both}
/* PL1 part B · THE CAUSE of "the search does not go away" (live, 2027-03-16.1): VIS1 wrote display:flex on the panel itself, which
   beat the browser's dialog:not([open]){display:none}; the closed dialog stayed painted, out of the top layer, and every row in it
   still took clicks. It is drawn only while open (the drawer's own rule, dialog.gsheet[open]). */
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel[open]{display:flex}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel.out{animation:clDropOut .12s var(--ease) both}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;animation:none}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel>.ggrab{display:none}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel :is(.palov,.pal){display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel .pal input{flex:none;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge)}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel .palrs{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:8px 0 0}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel .palit{background:transparent;border-radius:10px;margin:0 0 2px}
html:not(.ui-nl) dialog.gsheet.palsheet.palpanel .palit:hover,html:not(.ui-nl) dialog.gsheet.palsheet.palpanel .palit.on{background:var(--accent-soft)}
html:not(.ui-nl) dialog.gsheet.gdrop .gsh{padding:6px 12px 4px;gap:8px}
html:not(.ui-nl) dialog.gsheet.gdrop .gsh h2{font-family:var(--font);font-size:13.5px;font-weight:600;letter-spacing:0;line-height:1.3;color:var(--muted)}
html:not(.ui-nl) dialog.gsheet.gdrop .gsh p{display:none}
html:not(.ui-nl) dialog.gsheet.gdrop.gdnohead>.gsh{display:none}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.gbody,.gsrc){display:block;padding:0;margin:0}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.galist,.gsrc>*){gap:0!important}
/* the rows: 42px, no tile behind the icon, a soft grey on hover, the current choice soft blue and bold */
html:not(.ui-nl) dialog.gsheet.gdrop :is(.garow,.gsrc>*>a,.gsrc>*>button,.gsrc>*>form>button,.gsrc>*>.umrow,.gsrc>*>details>summary,.actp .lnk,.actp>form>button){
  display:flex;align-items:center;gap:12px;min-height:42px;padding:6px 12px;border:0;border-radius:10px;width:100%;text-align:left;
  font:inherit;font-size:15.5px;font-weight:400;line-height:1.3;color:var(--ink);text-decoration:none;background:transparent;box-shadow:none;cursor:pointer}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.garow,.gsrc>*>a,.gsrc>*>button,.gsrc>*>form>button,.gsrc>*>details>summary,.actp .lnk,.actp>form>button):is(:hover,:focus-visible){background:var(--soft);text-decoration:none;outline:none}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.garow.cur,.garow[aria-pressed="true"],.garow.on){background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}
html:not(.ui-nl) dialog.gsheet.gdrop .garow.cur .chip{display:none}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.garow.danger,.garow.bad){color:var(--bad)}
html:not(.ui-nl) dialog.gsheet.gdrop .garow .gico{width:20px;height:20px;border-radius:0;background:transparent;color:var(--muted)}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.garow.danger,.garow.cur) .gico{color:inherit}
html:not(.ui-nl) dialog.gsheet.gdrop .garow small{font-size:13.5px;margin-top:1px}
html:not(.ui-nl) dialog.gsheet.gdrop .garow:active{transform:none}
html:not(.ui-nl) dialog.gsheet.gdrop .gsrc>*>form{margin:0}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.umh){padding:8px 12px 6px}
html:not(.ui-nl) dialog.gsheet.gdrop .gsrc .umsep{display:block;height:1px;margin:6px 8px;background:var(--cl-line)}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.rpmorerest:empty){display:none}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.rpmfb,.rpmorerest,.rppin,.actwho){padding:4px 12px}
html:not(.ui-nl) dialog.gsheet.gdrop :is(form:has(input:not([type=hidden]),select,textarea),.colpick,.viewsave){padding:4px 6px}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.rpmorerest details>summary){display:flex;align-items:center;gap:12px;min-height:42px;padding:6px 12px;border-radius:10px;background:transparent;box-shadow:none;font-weight:400;font-size:15.5px;cursor:pointer}
html:not(.ui-nl) dialog.gsheet.gdrop :is(.rpmorerest details>summary):hover{background:var(--soft)}
html:not(.ui-nl) dialog.gsheet.gdrop .actp{display:flex;flex-direction:column;gap:2px;padding:0;margin:0;background:transparent;box-shadow:none;border:0;position:static;min-width:0}
html:not(.ui-nl) dialog.gsheet.gdrop .actp .rowf{display:flex;gap:8px;align-items:center;padding:4px 6px}
html:not(.ui-nl) dialog.gsheet.gdrop .actp .rowf select{flex:1;min-width:0}
/* "Are you sure?" inside the menu: the question on a pale red, the solid red yes (only here), Cancel puts the list back */
html:not(.ui-nl) dialog.gsheet.gdrop .gdask{margin:4px 2px;padding:12px;border-radius:10px;background:var(--bad-bg)}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask b{display:block;color:var(--bad);font-size:16px;font-weight:600}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask p{margin:4px 0 12px;font-size:14px;color:var(--cl-ink2)}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask .gacts{gap:8px}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask .gacts .btn{flex:0 0 auto;width:auto;min-height:36px;padding:0 14px;font-size:14.5px;justify-content:center}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask .btn.danger{background-color:var(--cl-bad-solid);background-image:linear-gradient(180deg,var(--cl-bad-top),var(--cl-bad-solid));color:var(--cl-on-bad-solid);box-shadow:none}
html:not(.ui-nl) dialog.gsheet.gdrop .gdask:not(.danger) .btn:not(.soft){color:var(--on-btn)}
html:not(.ui-nl) dialog.gsheet.gdrop .gdhid{display:none!important}
/* the button that opened it shows pressed while the menu is open */
html:not(.ui-nl) .gdopen{box-shadow:0 0 0 3px var(--cl-fring)}
/* on a phone the same option menus rise from the bottom (C12's phone default, MCPhRecord): plain rows, 48px, no tiles */
html:not(.ui-nl) dialog.gsheet.gdmenu{background:var(--surface);-webkit-backdrop-filter:none;backdrop-filter:none}
html:not(.ui-nl) dialog.gsheet.gdmenu :is(.galist,.gsrc>*){gap:0!important}
html:not(.ui-nl) dialog.gsheet.gdmenu :is(.garow,.gsrc>*>a,.gsrc>*>button,.gsrc>*>form>button,.gsrc>*>.umrow,.rpmorerest details>summary){min-height:48px;padding:6px 8px;border-radius:12px;background:transparent;box-shadow:none;font-weight:400}
html:not(.ui-nl) dialog.gsheet.gdmenu .garow .gico{width:22px;height:22px;background:transparent;color:var(--muted)}
html:not(.ui-nl) dialog.gsheet.gdmenu :is(.garow.danger) .gico{color:inherit}
html:not(.ui-nl) dialog.gsheet.gdmenu .gsh h2{font-family:var(--font);font-size:15px;font-weight:600;color:var(--muted)}
@keyframes clDropIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes clDropUp{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes clDropOut{from{opacity:1}to{opacity:0}}
@media(prefers-reduced-motion:reduce){ html:not(.ui-nl) dialog.gsheet.gdrop,html:not(.ui-nl) dialog.gsheet.gdrop.out,html:not(.ui-nl) dialog.gsheet.palsheet.palpanel,html:not(.ui-nl) dialog.gsheet.palsheet.palpanel.out{animation:none!important} }/* ===== CL2 · the New job order page (core/cl2.php; canvas MCNewOrder) ===== */
html:not(.ui-nl) .clform [hidden]{display:none!important}
html:not(.ui-nl) .jwrap.clnewp{display:block}
html:not(.ui-nl) .clof{display:flex;flex-direction:column;gap:20px}
html:not(.ui-nl) .clsteps{display:flex;align-items:center;gap:12px;padding:10px 16px;border-radius:20px;background:var(--surface);box-shadow:var(--sh-card);overflow-x:auto;scrollbar-width:none;position:sticky;top:calc(var(--hh) + var(--sat) + 8px);z-index:6}
html:not(.ui-nl) .clsteps::-webkit-scrollbar{display:none}
html:not(.ui-nl) .clstep{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 10px;margin:0 -4px;border:0;border-radius:999px;background:transparent;font:inherit;font-size:15px;font-weight:600;color:var(--muted);white-space:nowrap;cursor:pointer}
html:not(.ui-nl) .clstep:hover{background:var(--surface-2)}
html:not(.ui-nl) .clstep i{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13px;background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) .clstep i .c{display:none}
html:not(.ui-nl) .clstep.done i{background:var(--ok-bg);color:var(--ok)}
html:not(.ui-nl) .clstep.done i .n{display:none} html:not(.ui-nl) .clstep.done i .c{display:block}
html:not(.ui-nl) .clstep.now{color:var(--ink)}
html:not(.ui-nl) .clstep.now i{background:linear-gradient(var(--btn-top),var(--btn));color:var(--on-btn)}
html:not(.ui-nl) .clln{flex:1 1 24px;min-width:16px;height:2px;border-radius:2px;background:var(--cl-line2)}
html:not(.ui-nl) .clmiss{margin-left:auto;flex:none}
html:not(.ui-nl) .clofg{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:24px;align-items:start}
html:not(.ui-nl) .clofc{display:flex;flex-direction:column;gap:24px;min-width:0}
html:not(.ui-nl) .clos{scroll-margin-top:calc(var(--hh) + var(--sat) + 84px)}
html:not(.ui-nl) .closh{display:flex;align-items:flex-start;gap:14px;margin:0 0 20px}
html:not(.ui-nl) .closh h2{font-family:var(--display);font-weight:400;font-size:22px;margin:0;line-height:1.25}
html:not(.ui-nl) .closh p{margin:4px 0 0;color:var(--muted);font-size:15px;line-height:1.45}
html:not(.ui-nl) .clsn{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;background:var(--cl-grey-bg);color:var(--cl-grey);margin-top:-2px}
html:not(.ui-nl) .clsn .c{display:none}
html:not(.ui-nl) .clos.ok .clsn{background:var(--ok-bg);color:var(--ok)} html:not(.ui-nl) .clos.ok .clsn .n{display:none} html:not(.ui-nl) .clos.ok .clsn .c{display:block}
html:not(.ui-nl) .clform label{margin:0}
html:not(.ui-nl) .clform .fg>label:not(.chk){display:block;font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .clform .fg>label:not(.chk)>:is(input,select,textarea,.gpick,.pkwrap),html:not(.ui-nl) .clform .fg .abgrid>label>:is(input,select){display:block;width:100%;margin-top:6px}
html:not(.ui-nl) .clform .fg>label:not(.chk)>.small{display:block;margin-top:4px;font-weight:400}
html:not(.ui-nl) .clform .fg>label.chk{display:flex;flex-direction:row;align-items:center;gap:10px;min-height:44px;font-size:16px;font-weight:500;color:var(--ink)}
html:not(.ui-nl) .clform .fg>label.chk input{width:20px;height:20px;flex:none}
html:not(.ui-nl) .clform .fg>div>label:not(.chk,.pchk,.dtpapo,.abchk){display:flex;flex-direction:column;gap:6px;margin:0}
html:not(.ui-nl) .clform .fg .small{font-size:14px}
html:not(.ui-nl) .clnote{margin:0}
html:not(.ui-nl) .clhint{display:block;margin-top:6px}
html:not(.ui-nl) .clsub{padding-top:8px;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .clsub h3{font-size:17px;font-weight:600;margin:14px 0 2px}
html:not(.ui-nl) .clsub p{margin:0}
/* the kind of order: two tiles (two real radios) */
html:not(.ui-nl) .clkinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
html:not(.ui-nl) .clkind{position:relative;display:flex!important;flex-direction:row!important;align-items:flex-start;gap:12px;padding:16px 44px 16px 16px;border-radius:16px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);cursor:pointer;transition:box-shadow .2s,background .2s}
html:not(.ui-nl) .clkind:hover{background:var(--surface-2)}
html:not(.ui-nl) .clkind input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
html:not(.ui-nl) .clkind .ic{flex:none;width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) .clkind .tx{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .clkind b{font-size:17px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .clkind small{font-size:14px;color:var(--muted);font-weight:400;line-height:1.4}
html:not(.ui-nl) .clkind .ck{position:absolute;right:14px;top:14px;width:22px;height:22px;border-radius:50%;display:none;place-items:center;background:linear-gradient(var(--btn-top),var(--btn));color:var(--on-btn)}
html:not(.ui-nl) .clkind:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--cl-infodot)}
html:not(.ui-nl) .clkind:has(input:checked) .ic{background:var(--surface);color:var(--accent)}
html:not(.ui-nl) .clkind:has(input:checked) .ck{display:grid}
html:not(.ui-nl) .clkind .ck{padding:0;box-sizing:border-box} html:not(.ui-nl) .clkind .ck svg{display:block;width:16px!important;height:16px!important;min-width:16px;max-width:none}
html:not(.ui-nl) .clkind:has(input:focus-visible){box-shadow:inset 0 0 0 1.5px var(--cl-infodot),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl) .clpicks{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:-6px}
html:not(.ui-nl) .clpicks>span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .clpicks .chip{cursor:pointer;border:0;font:inherit;font-size:14px;font-weight:600}
html:not(.ui-nl) .clpicks .chip:hover{background:var(--accent-soft);color:var(--on-accent-soft)}
/* the pieces older sprints built, inside the grid */
html:not(.ui-nl) .clform .fg .tbemsf{margin:0}
html:not(.ui-nl) .clform .fg .owhere>label.chk{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-size:16px;color:var(--ink);margin:0 0 16px}
html:not(.ui-nl) .clform .fg .abgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px;margin-top:16px}
html:not(.ui-nl) .clform .fg .abgrid>label{display:block;margin:0;font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .clform .fg .abnote{margin:10px 0 0;color:var(--muted);font-size:14px}
html:not(.ui-nl) .clform .fg .payrow{border:0;padding:0;margin:0;min-width:0}
html:not(.ui-nl) .clform .fg .payrow legend{font-size:14px;font-weight:600;color:var(--cl-ink2);padding:0;margin:0 0 6px}
html:not(.ui-nl) .clform .fg .payamt{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) minmax(0,1fr);gap:12px;align-items:center}
html:not(.ui-nl) .clform .fg .payrow .paychk{margin-top:12px}
html:not(.ui-nl) .clform .fg .jttick{margin:0}
html:not(.ui-nl) .clform .fg details.jtags{margin:0}
html:not(.ui-nl) .clform .fg .pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;align-items:end}
html:not(.ui-nl) .clform .fg .pair>label:not(.chk){display:block;font-size:14px;font-weight:600;color:var(--cl-ink2);margin:0}
html:not(.ui-nl) .clform .fg .pair>label:not(.chk)>input{display:block;width:100%;margin-top:6px}
html:not(.ui-nl) .clform .fg .pair>label.chk{display:flex;align-items:flex-start;gap:10px;font-size:15px;color:var(--ink);margin:0;padding-bottom:8px}
html:not(.ui-nl) .clform .jde :is(button.ghost,button.quiet),html:not(.ui-nl) .clform .fg button.vbtn,html:not(.ui-nl) .clform .fg .vbtn{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:0 14px;border:0;border-radius:999px;font:inherit;font-size:14px;font-weight:600;color:var(--cl-ink2);background:var(--cl-grey-bg);cursor:pointer}
html:not(.ui-nl) .clform .jde :is(button.ghost,button.quiet):hover{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .clform .jdetools{display:grid;grid-template-columns:minmax(0,3fr) auto;gap:12px 20px;align-items:center;margin:8px 0 12px}
html:not(.ui-nl) .clform .jdehead{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .clform .jdelbl{font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .clform .jdefree textarea{width:100%}
/* the preview card: flat, floating, glassy (no blue edge on top, no 3D: the owner's notes on MCNewOrder) and Ready to post */
html:not(.ui-nl) .clpv{position:sticky;top:calc(var(--hh) + var(--sat) + 84px);display:flex;flex-direction:column;gap:20px;min-width:0}
html:not(.ui-nl) .clpvc{padding:20px}
html:not(.ui-nl) .clpvcap{font-size:14px;font-weight:600;color:var(--muted);margin:0 0 12px}
html:not(.ui-nl) .clpvjob{border-radius:16px;background:var(--surface);box-shadow:0 10px 30px -18px rgba(20,40,80,.45),inset 0 0 0 1px var(--cl-line);padding:16px;display:flex;flex-direction:column;gap:6px}
html:not(.ui-nl) .clpvt{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
html:not(.ui-nl) .clpvt b{font-size:17px;font-weight:600;line-height:1.3;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .clpvmark{flex:none;width:30px;height:30px;border-radius:8px;background:var(--paper);display:grid;place-items:center}
html:not(.ui-nl) .clpvmark img,html:not(.ui-nl) .clpvmark svg{max-width:26px;max-height:26px}
html:not(.ui-nl) .clpvw{font-size:14px;color:var(--muted);overflow-wrap:anywhere}
html:not(.ui-nl) .clpvwhen{font-size:14px;font-weight:600;color:var(--accent)}
html:not(.ui-nl) .clpvtags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
html:not(.ui-nl) .clpvf{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:8px}
html:not(.ui-nl) .clpvf>span:first-child{font-size:15px;font-weight:600}
html:not(.ui-nl) .clpv .ph{color:var(--faint);font-weight:500;font-style:italic}
html:not(.ui-nl) .clready{padding:20px}
html:not(.ui-nl) .clready h2{font-family:var(--display);font-weight:400;font-size:20px;margin:0}
html:not(.ui-nl) .clready>p{margin:2px 0 12px;color:var(--muted);font-size:14px}
html:not(.ui-nl) .clcks{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .clcks li{display:flex;align-items:center;gap:10px;min-height:44px;font-size:15px;font-weight:600;color:var(--ink);box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .clcks li:first-child{box-shadow:none}
html:not(.ui-nl) .clcks li i{width:18px;height:18px;border-radius:50%;flex:none;background:var(--warn-bg);box-shadow:inset 0 0 0 4px var(--warn-bg),inset 0 0 0 9px var(--cl-warndot)}
html:not(.ui-nl) .clcks li.done i{background:var(--cl-okck) center/18px no-repeat;box-shadow:none}
html:not(.ui-nl) .clcks li:not(.done) span{color:var(--warn)}
html:not(.ui-nl) .clpvnote{margin:0}
/* the Save bar: what is missing, and Create (solid, never see-through: the owner's rule for bars that stay) */
html:not(.ui-nl) .clsave{position:sticky;bottom:16px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 0;padding:12px 14px 12px 18px;border-radius:20px;background:var(--surface);box-shadow:var(--sh-lg)}
html:not(.ui-nl) .clsave .chip{white-space:normal;height:auto;min-height:28px;line-height:1.3;padding-top:4px;padding-bottom:4px}
html:not(.ui-nl) .clsave .btn{margin-left:auto}
@media(min-width:821px){ html:not(.ui-nl) .clsave{margin-right:76px} }
html:not(.ui-nl) .clneed{animation:cl2need 1.4s ease-out}
@keyframes cl2need{0%,30%{box-shadow:0 0 0 4px var(--warn-bg)}100%{box-shadow:0 0 0 0 transparent}}
@media(max-width:1180px){ html:not(.ui-nl) .clofg{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .clpv{position:static;order:-1} html:not(.ui-nl) .clpv .clready,html:not(.ui-nl) .clpvnote{display:none} }
@media(max-width:900px){ html:not(.ui-nl) .clform .fg .abgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:820px){
  html:not(.ui-nl) .clsteps{top:calc(var(--hh) + var(--sat) + 4px);padding:6px 10px}
  html:not(.ui-nl) .clstep span{display:none} html:not(.ui-nl) .clstep.now span{display:inline}
  html:not(.ui-nl) .clsave{bottom:calc(88px + env(safe-area-inset-bottom,0px));margin-right:64px;padding:8px 8px 8px 12px;flex-wrap:nowrap}
  html:not(.ui-nl) .clsave .chip{white-space:nowrap} html:not(.ui-nl) .clsave .btn{white-space:nowrap;flex:none}
  html:not(.ui-nl) .clpv{display:none}
  html:not(.ui-nl) .clform .jde :is(button.ghost,button.quiet),html:not(.ui-nl) .clform .fg button.vbtn,html:not(.ui-nl) .clform .fg .vbtn{min-height:44px}   /* a phone's tap target (alignscan) */
}
@media(max-width:560px){ html:not(.ui-nl) .clkinds{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .clform .fg .abgrid{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .clform .fg .payamt{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)} html:not(.ui-nl) .clform .fg .payamt select{grid-column:1 / -1} }
@media(prefers-reduced-motion:reduce){ html:not(.ui-nl) .clneed{animation:none} }
/* ---- the order's edit (canvas MCOrderEdit): NL2's sections drawn in Classic, every field on the one grid ---- */
html:not(.ui-nl) .clfs{padding:20px 0 4px;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .clfs:first-of-type{padding-top:0;box-shadow:none}
html:not(.ui-nl) .clfsh{margin:0 0 14px}
html:not(.ui-nl) .clfsh h3{font-size:18px;font-weight:600;margin:0}
html:not(.ui-nl) .clfsh p{margin:2px 0 0;color:var(--muted);font-size:14px}
html:not(.ui-nl) .clfsb{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px;align-items:start;min-width:0}
html:not(.ui-nl) .clfsb>*{grid-column:1 / -1;min-width:0;margin:0!important}
html:not(.ui-nl) .clfsb>.pair{display:contents}
html:not(.ui-nl) .clfsb>.pair>*{grid-column:span 2;min-width:0;margin:0!important}
html:not(.ui-nl) .clfsb>label:not(.chk),html:not(.ui-nl) .clfsb>.pair>label:not(.chk){display:block;font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .clfsb>label:not(.chk)>:is(input,select,textarea),html:not(.ui-nl) .clfsb>.pair>label:not(.chk)>:is(input,select,textarea){display:block;width:100%;margin-top:6px}
html:not(.ui-nl) .clfsb>label.chk,html:not(.ui-nl) .clfsb>.pair>label.chk{display:flex;align-items:center;gap:10px;min-height:44px;font-size:16px;color:var(--ink);align-self:end}
html:not(.ui-nl) .clfsb>.tzline{margin-top:-6px!important}
html:not(.ui-nl) .clfsb .nlwg{grid-column:1 / -1}
html:not(.ui-nl) .clfsb .nlwgi{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px;align-items:start}
html:not(.ui-nl) .clfsb .nlwgi .nllen{grid-column:span 2;order:5}
html:not(.ui-nl) .clfsb .nlwg:not(.shift) .nlwgi .sd{grid-column:span 2}
html:not(.ui-nl) .clfsb .clr3{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 20px}
html:not(.ui-nl) .clfsb .clr3>.s2{grid-column:span 2} html:not(.ui-nl) .clfsb .clr3>.s1{grid-column:span 1} html:not(.ui-nl) .clfsb .clr3>.s4{grid-column:1 / -1}
html:not(.ui-nl) .clfsb .nlwh{display:block;font-size:14px;color:var(--muted);margin-top:4px}
html:not(.ui-nl) .cleditbar{margin-top:20px}
html:not(.ui-nl) .cleditbar>.small{flex:1 1 auto}
@media(max-width:900px){ html:not(.ui-nl) .clfsb,html:not(.ui-nl) .clfsb .nlwgi,html:not(.ui-nl) .clfsb .clr3{grid-template-columns:repeat(2,minmax(0,1fr))} html:not(.ui-nl) .clfsb .nlwgi .nllen{grid-column:1 / -1} }
@media(max-width:560px){ html:not(.ui-nl) .clfsb,html:not(.ui-nl) .clfsb .nlwgi,html:not(.ui-nl) .clfsb .clr3{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .clfsb>.pair>*,html:not(.ui-nl) .clfsb .nlwgi>*,html:not(.ui-nl) .clfsb .clr3>*{grid-column:1 / -1!important} html:not(.ui-nl) .cleditbar>.small{display:none} }/* ===== CL2 · the date and time control in Classic (core/dtpick.php) ===== */
html:not(.ui-nl) .nlwf{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
html:not(.ui-nl) .nlwf .nlwl{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;font-size:14px;font-weight:600;color:var(--cl-ink2);white-space:nowrap}
html:not(.ui-nl) .nlok{display:none;width:18px;height:18px;flex:none;background:var(--cl-okck) center/18px no-repeat}
html:not(.ui-nl) .nlok svg{display:none}
html:not(.ui-nl) .nlwf:has(input[data-dtp-date]:not(:placeholder-shown),input[data-dtp-time]:not(:placeholder-shown)) .nlok{display:inline-block}
html:not(.ui-nl) .nlwf.bad .nlok{display:none}
html:not(.ui-nl) .nlw{display:flex;align-items:center;gap:8px;min-height:44px;padding:0 6px 0 12px;border-radius:12px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);min-width:0;transition:background .2s,box-shadow .2s}
html:not(.ui-nl) .nlwf:focus-within .nlw{background:var(--cl-ffocus);box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl) .nlwf:has(input:not(:placeholder-shown)) .nlw{background:var(--cl-ffocus)}
html:not(.ui-nl) .nlwf.bad .nlw{box-shadow:inset 0 0 0 1.5px var(--bad)}
html:not(.ui-nl) .nlwf.nlneed .nlw,html:not(.ui-nl) .nlwf.clneed .nlw{animation:cl2need 1.4s ease-out}
html:not(.ui-nl) .nlw input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;margin:0!important;min-height:42px!important;font:inherit;font-size:16px;color:var(--ink);outline:0;font-variant-numeric:tabular-nums}
html:not(.ui-nl) .nlw input::placeholder{color:var(--faint)}
html:not(.ui-nl) .dtpcal{order:-1;position:relative;width:28px;height:28px;border-radius:8px;border:0!important;box-shadow:none!important;display:grid;place-items:center;background:transparent;color:var(--muted);cursor:pointer;flex:none;padding:0;min-height:0!important;margin-left:-4px}
html:not(.ui-nl) .dtpcal::after{content:"";position:absolute;inset:-8px}
html:not(.ui-nl) .dtpcal:hover{background:var(--surface-2);color:var(--accent)}
html:not(.ui-nl) .dtpap{display:flex;padding:3px;border-radius:999px;background:var(--cl-grey-bg);flex:none}
html:not(.ui-nl) .dtpapo{position:relative;display:block!important;cursor:pointer;margin:0!important}
html:not(.ui-nl) .dtpapo input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
html:not(.ui-nl) .dtpapo span{display:grid;place-items:center;height:30px;min-width:42px;padding:0 8px;border-radius:999px;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .dtpapo input:checked + span{background:var(--surface);color:var(--accent);box-shadow:0 2px 6px -2px rgba(20,40,80,.35)}
html:not(.ui-nl) .dtpapo input:focus-visible + span{box-shadow:0 0 0 3px var(--cl-fring)}
html:not(.ui-nl) .dtpq{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
html:not(.ui-nl) .dtpq button{min-height:32px;padding:0 12px;border:0;border-radius:999px;font:inherit;font-size:14px;font-weight:600;color:var(--cl-ink2);background:var(--cl-grey-bg);cursor:pointer}
html:not(.ui-nl) .dtpq button:hover{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .dtppop{padding:16px;border-radius:20px;background:var(--surface);width:340px;max-width:calc(100vw - 32px)}
html:not(.ui-nl) .dtppop.pop{position:absolute;left:0;top:calc(100% + 8px);z-index:40;box-shadow:var(--sh-lg),0 0 0 1px var(--cl-line)}
html:not(.ui-nl) .dtppop.pop.right{left:auto;right:0}
html:not(.ui-nl) .dtpsheet .dtppop{width:auto;max-width:none;padding:4px 0 8px;box-shadow:none}
html:not(.ui-nl) .dtph{display:flex;align-items:center;justify-content:space-between}
html:not(.ui-nl) .dtph b{font-family:var(--display);font-weight:600;font-size:17px}
html:not(.ui-nl) .dtpnav{width:36px;height:36px;border-radius:50%;border:0!important;box-shadow:none!important;display:grid;place-items:center;background:var(--cl-grey-bg);color:var(--ink);cursor:pointer;padding:0;min-height:0!important}
html:not(.ui-nl) .dtpnav:hover{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .dtpwk,html:not(.ui-nl) .dtpmg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
html:not(.ui-nl) .dtpwk{margin-top:12px;font-size:13px;font-weight:600;color:var(--muted);text-align:center}
html:not(.ui-nl) .dtpmg{margin-top:6px}
html:not(.ui-nl) .dtpd{height:40px;min-height:0!important;border:0!important;border-radius:10px;background:transparent;font:inherit;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;padding:0;box-shadow:none}
html:not(.ui-nl) .dtpd:hover:not(:disabled){background:var(--surface-2)}
html:not(.ui-nl) .dtpd.today{color:var(--accent);font-weight:700;box-shadow:inset 0 0 0 1.5px var(--accent)}
html:not(.ui-nl) .dtpd.mid{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .dtpd.on{background:linear-gradient(var(--btn-top),var(--btn));color:var(--on-btn);font-weight:700;box-shadow:none}
html:not(.ui-nl) .dtpd:disabled{color:var(--faint);opacity:.5;cursor:default}
html:not(.ui-nl) .dtpd.blank{visibility:hidden}
html:not(.ui-nl) .dtpft{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:14px;color:var(--muted)}
/* the Shift length tile (NL3.1's markup and script) */
html:not(.ui-nl) .nllen{border-radius:16px;background:var(--surface-2);box-shadow:inset 0 0 0 1px var(--cl-line);padding:14px 16px;display:flex;flex-direction:column;gap:2px;min-height:96px;justify-content:center}
html:not(.ui-nl) .nllen .cap{font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .nllen b{font-family:var(--display);font-weight:400;font-size:30px;line-height:1.15;color:var(--ink);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .nllen.empty b{color:var(--faint);font-size:20px}
html:not(.ui-nl) .nllen.bad{background:var(--bad-bg);box-shadow:none} html:not(.ui-nl) .nllen.bad b{color:var(--bad);font-size:20px}
html:not(.ui-nl) .nllen span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .nllen + .clnote{margin-top:8px}
@media(max-width:640px){ html:not(.ui-nl) .dtpd{height:46px;font-size:16px} html:not(.ui-nl) .dtpapo span{height:36px;min-width:44px} html:not(.ui-nl) .nlw{min-height:48px} html:not(.ui-nl) .nlw input{font-size:17px;min-height:46px!important} }/* ===== CL2 · the Orders list (canvas MCOrders) ===== */
html:not(.ui-nl) .jwrap.clolist{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;align-items:start}
@media(min-width:1180px){
  html:not(.ui-nl) .jwrap.clolist{grid-template-columns:minmax(0,1fr) 300px}
  html:not(.ui-nl) .jwrap.clolist > div:first-child{display:contents}
  html:not(.ui-nl) .jwrap.clolist > div:first-child > *{grid-column:1 / -1;min-width:0}
  html:not(.ui-nl) .jwrap.clolist > div:first-child > [data-soft]{display:contents}
  html:not(.ui-nl) .jwrap.clolist > div:first-child > [data-soft] > *{grid-column:1 / -1;min-width:0}
  html:not(.ui-nl) .jwrap.clolist > div:first-child > [data-soft] > .card:not(.clfbar){grid-column:1}
  html:not(.ui-nl) .jwrap.clolist > #order-rec{grid-column:2;align-self:start}
  html:not(.ui-nl) .jwrap.clolist > div:first-child > [data-soft] > .card:not(.clfbar) ~ *{grid-column:1}
}
/* the number row: four figures in one card */
html:not(.ui-nl) .nlonum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;padding:20px 24px;border-radius:20px;background:var(--cl-card);box-shadow:var(--sh-card)}
html:not(.ui-nl) .nlonum > div{min-width:0}
html:not(.ui-nl) .nlonum b{display:block;font-family:var(--display);font-weight:400;font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums;color:var(--ink)}
html:not(.ui-nl) .nlonum b.warn{color:var(--warn)} html:not(.ui-nl) .nlonum b.bad{color:var(--bad)} html:not(.ui-nl) .nlonum b.ok{color:var(--ok)}
html:not(.ui-nl) .nlonum span{display:flex;align-items:center;gap:6px;font-weight:600;font-size:15px;margin-top:6px;color:var(--ink)}
html:not(.ui-nl) .nlonum span i{width:7px;height:7px;border-radius:50%;flex:none;display:none}
html:not(.ui-nl) .nlonum b.warn + span i.warn,html:not(.ui-nl) .nlonum b.bad + span i.bad,html:not(.ui-nl) .nlonum b.ok + span i.ok{display:block}
html:not(.ui-nl) .nlonum span i.warn{background:var(--cl-warndot)} html:not(.ui-nl) .nlonum span i.bad{background:var(--cl-baddot)} html:not(.ui-nl) .nlonum span i.ok{background:var(--cl-okdot)}
html:not(.ui-nl) .nlonum small{display:block;font-size:14px;color:var(--muted);margin-top:2px}
@media(max-width:760px){ html:not(.ui-nl) .nlonum{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px;padding:16px 20px} }
/* the one filter bar: the search, then Show, Kind and Who as drop-downs (C12), then the saved views */
html:not(.ui-nl) .clfbar{padding:16px 20px}
html:not(.ui-nl) .clfrow{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .clfq{flex:1 1 280px;min-width:0;margin:0}
html:not(.ui-nl) .clfqi{display:flex;align-items:center;gap:10px;min-height:44px;padding:0 14px;border-radius:12px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);color:var(--muted);margin:0}
html:not(.ui-nl) .clfqi:focus-within{background:var(--cl-ffocus);box-shadow:inset 0 0 0 1.5px var(--accent),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl) .clfqi input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;min-height:42px;font:inherit;font-size:16px;color:var(--ink);outline:0}
html:not(.ui-nl) details.clfd{position:relative;flex:none}
html:not(.ui-nl) :is(details.clfd,details.clapm) > summary{list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px;cursor:pointer;white-space:nowrap}
html:not(.ui-nl) :is(details.clfd,details.clapm) > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) :is(details.clfd,details.clapm) > summary::after{content:"";width:14px;height:14px;background:var(--chev-img) center/14px no-repeat;margin-left:2px}
html:not(.ui-nl) .clfdl{font-weight:500;color:var(--muted)}
html:not(.ui-nl) details.clfd > summary b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .clfdp{display:flex;flex-direction:column;min-width:240px}
html:not(.ui-nl) .clfdh{font-size:14px;font-weight:600;color:var(--muted);padding:6px 12px 8px}
html:not(.ui-nl) .clapf{display:flex;flex-direction:column;min-width:220px;margin:0}
html:not(.ui-nl) .clapf button.garow{width:100%;border:0;background:transparent;font:inherit;text-align:left;cursor:pointer}
html:not(.ui-nl) .clapf button.garow.cur::after{content:"";width:16px;height:16px;flex:none;background:var(--cl-okck) center/16px no-repeat}
html:not(.ui-nl) :is(.clfdp a,.clapf button).garow{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:44px;padding:0 12px;border-radius:10px;color:var(--ink);text-decoration:none;font-size:16px}
html:not(.ui-nl) :is(.clfdp a,.clapf button).garow:hover{background:var(--surface-2)}
html:not(.ui-nl) :is(.clfdp a,.clapf button).garow.cur{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}
html:not(.ui-nl) .clfdp a.garow[data-n]::after{content:attr(data-n);font-size:14px;font-weight:400;color:var(--muted);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .clfviews .viewbar{margin:0}
html:not(.ui-nl) .clfviews .viewbar:empty{display:none}
html:not(.ui-nl) .clfsay{margin:12px 0 0}
html:not(.ui-nl) .clfsay a{font-weight:600}
@media(max-width:820px){ html:not(.ui-nl) .clfrow{gap:8px} html:not(.ui-nl) .clfq{flex-basis:100%} html:not(.ui-nl) details.clfd > summary{padding:0 12px} }
/* the rows: the initials tile, the order, filled, the kind, the score (the same words as before, wrappers only) */
html:not(.ui-nl) .nlohd{display:grid;grid-template-columns:48px minmax(0,1fr) 130px 190px 56px;column-gap:18px;padding:0 0 10px;font-size:14px;font-weight:600;color:var(--muted);box-shadow:inset 0 -1px 0 var(--cl-line)}
html:not(.ui-nl) .nlohd span:last-child{text-align:right}
html:not(.ui-nl) a.srow.nlorow{display:grid;grid-template-columns:48px minmax(0,1fr) 130px 190px 56px;column-gap:18px;row-gap:2px;align-items:center;padding:16px 12px;margin:0 -12px;border:0;border-radius:14px;background:transparent;box-shadow:none}
html:not(.ui-nl) a.srow.nlorow + a.srow.nlorow{box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) a.srow.nlorow:hover{background:var(--surface-2)}
html:not(.ui-nl) a.srow.nlorow::before{content:attr(data-ini);width:44px;height:44px;border-radius:12px;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:15px;background:var(--accent-soft);color:var(--on-accent-soft);grid-column:1;grid-row:1 / 4}
html:not(.ui-nl) a.srow.nlorow.tsand::before{background:var(--warn-bg);color:var(--warn)}
html:not(.ui-nl) a.srow.nlorow.tslate::before{background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) a.srow.nlorow > span:first-child{display:contents}
html:not(.ui-nl) .nlorow .nlot{grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:17px}
html:not(.ui-nl) .nlorow .nlot strong{font-weight:600;min-width:0;overflow-wrap:anywhere}
html:not(.ui-nl) .nlorow em.nlom{display:contents;font-style:normal}
html:not(.ui-nl) .nlorow .nlofac{grid-column:2;grid-row:2;font-size:15px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html:not(.ui-nl) .nlorow .nlosep{display:none}
html:not(.ui-nl) .nlorow .nlofill{grid-column:3;grid-row:1 / 4;display:flex;flex-direction:column;gap:8px;font-size:15px;color:var(--muted);font-style:normal}
html:not(.ui-nl) .nlorow .nlofill::before{content:"";display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--cl-infodot) var(--clf),var(--cl-grey-bg) 0)}
html:not(.ui-nl) .nlofill{--clf:0%} html:not(.ui-nl) .nlofill.f1{--clf:10%} html:not(.ui-nl) .nlofill.f2{--clf:20%} html:not(.ui-nl) .nlofill.f3{--clf:30%} html:not(.ui-nl) .nlofill.f4{--clf:40%} html:not(.ui-nl) .nlofill.f5{--clf:50%} html:not(.ui-nl) .nlofill.f6{--clf:60%} html:not(.ui-nl) .nlofill.f7{--clf:70%} html:not(.ui-nl) .nlofill.f8{--clf:80%} html:not(.ui-nl) .nlofill.f9{--clf:90%} html:not(.ui-nl) .nlofill.f10{--clf:100%}
html:not(.ui-nl) .nlorow .nloapp{display:none}
html:not(.ui-nl) .nlorow em.nlowhy{grid-column:2;grid-row:3;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;font-style:normal;color:var(--warn);margin-top:2px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html:not(.ui-nl) .nlorow em.nlowhy::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cl-warndot);flex:none}
html:not(.ui-nl) .nlorow.hot em.nlowhy{color:var(--bad)} html:not(.ui-nl) .nlorow.hot em.nlowhy::before{background:var(--cl-baddot)}
html:not(.ui-nl) .nlorow > .chip:not(.nlokind){grid-column:5;grid-row:1 / 4;justify-self:end;background:transparent!important;box-shadow:none!important;padding:0!important;font-family:var(--display);font-weight:400;font-size:24px;color:var(--muted);height:auto}
html:not(.ui-nl) .nlorow > .chip.warn:not(.nlokind){color:var(--warn)!important} html:not(.ui-nl) .nlorow > .chip.bad:not(.nlokind){color:var(--bad)!important}
html:not(.ui-nl) .nlorow > .nlokind,html:not(.ui-nl) .nlorow > .chip:last-child{grid-column:4;grid-row:1 / 4;justify-self:start;background:transparent!important;box-shadow:none!important;padding:0!important;font-size:16px;font-weight:600;color:var(--ink);height:auto;line-height:1.3;white-space:normal}
html:not(.ui-nl) .nlorow > .chip::before{display:none!important}
@media(max-width:760px){
  html:not(.ui-nl) a.srow.nlorow{grid-template-columns:44px minmax(0,1fr) auto;column-gap:14px;padding:14px 0;margin:0}
  html:not(.ui-nl) .nlorow .nlofill{grid-column:2;grid-row:4;flex-direction:row;align-items:center}
  html:not(.ui-nl) .nlorow .nlofill::before{width:72px;flex:none}
  html:not(.ui-nl) .nlorow > .nlokind,html:not(.ui-nl) .nlorow > .chip:last-child{grid-column:2;grid-row:5}
  html:not(.ui-nl) .nlorow > .chip:not(.nlokind){grid-column:3}
  html:not(.ui-nl) .nlohd{display:none}
}
/* "The two families": a floating card on the right of the list */
html:not(.ui-nl) #order-rec .nlfam{display:block;padding:24px;border-radius:20px;background:var(--cl-card);box-shadow:var(--sh-card)}
html:not(.ui-nl) .nlfam .nlfcap{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .nlfam h2{font-family:var(--display);font-weight:400;font-size:22px;margin:4px 0 0}
html:not(.ui-nl) .nlfam .nlfr{display:flex;gap:14px;margin-top:18px}
html:not(.ui-nl) .nlfam .nlfr + .nlfr{box-shadow:inset 0 1px 0 var(--cl-line);padding-top:16px;margin-top:16px}
html:not(.ui-nl) .nlfam .nlfi{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .nlfam .nlfi.sand{background:var(--warn-bg);color:var(--warn)}
html:not(.ui-nl) .nlfam .nlfr p{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
html:not(.ui-nl) .nlfam .nlfr b{font-size:16px}
html:not(.ui-nl) .nlfam .nlfnote{margin:16px 0 0;font-size:14px;color:var(--muted)}/* ===== CL2 · Today (home.php; canvas MCToday) ===== */
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;padding:8px 24px;border-radius:20px;background:var(--cl-card);box-shadow:var(--sh-card);margin:0 0 var(--gap)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib{display:flex!important;flex-direction:column;justify-content:flex-start;gap:6px;grid-row:auto;background:transparent;box-shadow:none;border-radius:0;padding:16px 0;transform:none!important;text-decoration:none;color:var(--ink);min-width:0}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib:nth-child(n+5){box-shadow:inset 0 1px 0 var(--cl-line)}
/* PL1 · a coloured tile (warn, bad) is an a.warn / a.bad, which the phone's tap-target rule (core/glass.php, a:is(.ok,.warn,.bad))
   gives margin-block:-14px: the tile rose 14px above its neighbour. The tiles keep their own box. */
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib{margin:0}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib b{order:1;align-self:flex-start;text-align:left;font-family:var(--display);font-weight:400;font-size:34px;line-height:1.1;color:var(--ink)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib.hot b{color:var(--accent)} html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib.warn b{color:var(--warn)} html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib.bad b{color:var(--bad)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib b.rbw{font-family:var(--display);font-size:24px;color:var(--ink);padding-top:6px}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib span{order:2;display:block;align-self:stretch;text-align:left;font-size:15px;font-weight:600;color:var(--ink)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis a.rib span::after{content:"";display:inline-block;vertical-align:-1px;margin-left:4px;width:12px;height:12px;background:var(--chev-img) center/12px no-repeat;transform:rotate(-90deg)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis a.rib:hover span{color:var(--accent)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis + .ribnote{margin:-14px 0 var(--gap) 24px;font-size:14px;color:var(--muted)}
html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .clribm{display:none}
html:not(.ui-nl) .myday.cl2day{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:var(--gap);align-items:start}
html:not(.ui-nl) .myday.cl2day .mdcol{display:flex;flex-direction:column;gap:var(--gap);min-width:0}
html:not(.ui-nl) .myday.cl2day .card{margin:0}
/* Finish setting up: plain rows, a fine line between them, "Set up" as a small pill */
html:not(.ui-nl) .setupc ol{margin:12px 0 0;padding:0;list-style:none}
html:not(.ui-nl) .setupc li a{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 0;border-radius:0;background:transparent;text-decoration:none;color:var(--ink)}
html:not(.ui-nl) .setupc li + li a{box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .setupc li a:hover{background:transparent}
html:not(.ui-nl) .setupc li a:hover b{color:var(--accent)}
html:not(.ui-nl) .setupc li b{font-size:17px;font-weight:600}
html:not(.ui-nl) .setupc li .d{display:block;font-size:15px;color:var(--muted);margin-top:2px}
html:not(.ui-nl) .setupc li .go{align-self:center;font-size:15px;color:var(--muted)}
html:not(.ui-nl) .setupc li:not(.ok) .go{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:var(--cl-grey-bg);color:var(--ink);font-weight:600}
html:not(.ui-nl) .setupc li.ok .d{display:none}
html:not(.ui-nl) .setupc .sumline{display:flex;align-items:center;gap:16px;font-weight:600}
html:not(.ui-nl) .setupc .meter{flex:0 1 240px}
/* the Staffing Pipeline as columns: the number, the stage, a bar under it */
html:not(.ui-nl) .g2pipe .g2fun{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:12px}
html:not(.ui-nl) .g2pipe .g2funr{display:grid;grid-template-areas:"n" "w" "bar";gap:6px;padding:4px 0;text-decoration:none;color:var(--ink);min-width:0}
html:not(.ui-nl) .g2pipe .g2funr b{grid-area:n;font-family:var(--display);font-weight:400;font-size:28px;line-height:1.1}
html:not(.ui-nl) .g2pipe .g2funr > span:first-child{grid-area:w;font-size:15px;font-weight:600;min-width:0;overflow-wrap:anywhere}
html:not(.ui-nl) .g2pipe .g2funr .gbar{grid-area:bar;width:100%;margin:0}
html:not(.ui-nl) .g2pipe .g2funr:hover > span:first-child{color:var(--accent)}
/* one column under 1000px: R54c's order kept (Finish setting up, Overdue, Today, Any time, Waiting on you, Tomorrow), then the rest */
@media(max-width:999px){ html:not(.ui-nl) .myday.cl2day{grid-template-columns:minmax(0,1fr)} html:not(.ui-nl) .myday.cl2day .mdcol{display:contents} html:not(.ui-nl) .myday.cl2day .mdday > *{order:2} html:not(.ui-nl) .myday.cl2day .setupc{order:1} html:not(.ui-nl) .myday.cl2day .mdwait{order:3} html:not(.ui-nl) .myday.cl2day .mdtomorrow{order:4} html:not(.ui-nl) .myday.cl2day .g2pipe{order:5} html:not(.ui-nl) .myday.cl2day .mdside > :not(.mdwait){order:6} }
@media(max-width:760px){
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:4px 20px}
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib:nth-child(n+3){box-shadow:inset 0 1px 0 var(--cl-line)}
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis:not(.open):has(> .clribm) .rib:nth-child(n+5){display:none!important}
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .clribm{display:inline-flex;grid-column:1 / -1;justify-self:start;margin:4px 0 14px}
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis a.rib span::after{display:none}
  html:not(.ui-nl)[data-surface="work"] .ribbon.kpis .rib b{font-size:30px}
}/* ===== CL2 · the candidate record (core/recprof.php with NL3.1's helpers; canvas MCRecord) ===== */
html:not(.ui-nl) .rphead .rpring.nlring{--clp:0;width:92px;height:92px;padding:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--cl-infodot) calc(var(--nlp,0)*1%),var(--cl-grey-bg) 0);border:0;box-shadow:none;flex:none;transition:--nlp .8s cubic-bezier(.2,.8,.2,1)}
html:not(.ui-nl) .rphead .nlring .rpav{width:80px;height:80px;border:0;border-radius:50%;background:linear-gradient(var(--accent-soft),var(--accent-soft)) var(--surface);color:var(--on-accent-soft);font-family:var(--display);font-weight:600;font-size:26px;display:grid;place-items:center;object-fit:cover;box-shadow:0 0 0 4px var(--surface)}
html:not(.ui-nl) .nlring.p0{--nlp:0} html:not(.ui-nl) .nlring.p1{--nlp:5} html:not(.ui-nl) .nlring.p2{--nlp:10} html:not(.ui-nl) .nlring.p3{--nlp:15} html:not(.ui-nl) .nlring.p4{--nlp:20} html:not(.ui-nl) .nlring.p5{--nlp:25} html:not(.ui-nl) .nlring.p6{--nlp:30}
html:not(.ui-nl) .nlring.p7{--nlp:35} html:not(.ui-nl) .nlring.p8{--nlp:40} html:not(.ui-nl) .nlring.p9{--nlp:45} html:not(.ui-nl) .nlring.p10{--nlp:50} html:not(.ui-nl) .nlring.p11{--nlp:55} html:not(.ui-nl) .nlring.p12{--nlp:60} html:not(.ui-nl) .nlring.p13{--nlp:65}
html:not(.ui-nl) .nlring.p14{--nlp:70} html:not(.ui-nl) .nlring.p15{--nlp:75} html:not(.ui-nl) .nlring.p16{--nlp:80} html:not(.ui-nl) .nlring.p17{--nlp:85} html:not(.ui-nl) .nlring.p18{--nlp:90} html:not(.ui-nl) .nlring.p19{--nlp:95} html:not(.ui-nl) .nlring.p20{--nlp:100}
html:not(.ui-nl) .rpprg{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:10px 0 0}
html:not(.ui-nl) .rpprg b{font-family:var(--display);font-weight:400;font-size:20px;color:var(--accent);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .rpprg span{font-size:15px;color:var(--muted)}
/* the mobile and the email, each with Copy; the place */
html:not(.ui-nl) .rpcc{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 0}
html:not(.ui-nl) .rpc{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 6px 0 12px;border-radius:999px;background:var(--cl-grey-bg);font-size:15px;color:var(--ink);min-width:0;max-width:100%}
html:not(.ui-nl) .rpc.rpcpl{padding-right:14px}
html:not(.ui-nl) .rpc .ic{width:16px;height:16px;color:var(--muted);fill:none;stroke:currentColor;stroke-width:1.7;flex:none}
html:not(.ui-nl) .rpc .rpcv{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html:not(.ui-nl) .rpcp{position:relative;border:0;min-height:30px;padding:0 12px;border-radius:999px;background:var(--surface);color:var(--accent);font:inherit;font-size:14px;font-weight:600;cursor:pointer;flex:none}
html:not(.ui-nl) .rpcp::after{content:"";position:absolute;inset:-7px}
html:not(.ui-nl) .rpcp:hover{background:var(--accent-soft)}
html:not(.ui-nl) .rpcp.ok{background:var(--ok-bg);color:var(--ok)}
@media(max-width:760px){ html:not(.ui-nl) .rphead .rpring.nlring{width:72px;height:72px;align-self:start} html:not(.ui-nl) .rphead .nlring .rpav{width:62px;height:62px;font-size:21px} html:not(.ui-nl) .rpc{min-height:44px} html:not(.ui-nl) .rpcp{min-height:34px} }
/* the compact bar: hidden in the flow, slides down once the head has left the screen; SOLID (nothing shows through) */
html:not(.ui-nl) .rpbarw{position:sticky;top:calc(var(--hh) + var(--sat));height:0;z-index:26;order:-1}
html:not(.ui-nl) .rpbar{position:absolute;left:0;right:0;top:0;height:60px;display:flex;align-items:center;gap:12px;padding:0 20px;border-radius:0 0 18px 18px;background:var(--surface);
  box-shadow:inset 0 -1px 0 var(--cl-line),0 12px 24px -22px rgba(20,40,80,.55);transform:translateY(-115%);opacity:0;pointer-events:none;transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s}
html:not(.ui-nl) .rpstuck .rpbar{transform:none;opacity:1}
html:not(.ui-nl) .rpbi{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);font-family:var(--display);font-weight:600;font-size:14px;flex:none}
html:not(.ui-nl) .rpbn{font-size:17px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html:not(.ui-nl) .rpbs{font-size:15px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html:not(.ui-nl) .rpbc{margin-left:auto;font-size:14px;font-weight:600;color:var(--muted);white-space:nowrap}
@media(max-width:1060px){ html:not(.ui-nl) .rpbar{height:52px;padding:0 14px;border-radius:0 0 14px 14px} html:not(.ui-nl) .rpbs,html:not(.ui-nl) .rpbc{display:none} }
/* each section: its icon tile and its status words in the status tone */
html:not(.ui-nl) .rpsht .rpsico.t-ok{background:var(--ok-bg);color:var(--ok)}
html:not(.ui-nl) .rpsht .rpsico.t-warn{background:var(--warn-bg);color:var(--warn)}
html:not(.ui-nl) .rpsht .rpsico.t-mute{background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) .rpsht .rpswd{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 12px;border-radius:999px;font-size:14px;font-weight:600}
html:not(.ui-nl) .rpswd.t-ok{background:var(--ok-bg);color:var(--ok)} html:not(.ui-nl) .rpswd.t-warn{background:var(--warn-bg);color:var(--warn)} html:not(.ui-nl) .rpswd.t-mute{background:var(--cl-grey-bg);color:var(--cl-grey)}
html:not(.ui-nl) .rpswd::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
html:not(.ui-nl) .rpsht .rpdot{display:none}
html:not(.ui-nl) .rpsec.rpsaved{animation:cl2sv 1.2s ease-out}
@keyframes cl2sv{0%{box-shadow:var(--sh-card),0 0 0 3px var(--ok-bg)}100%{box-shadow:var(--sh-card),0 0 0 0 transparent}}
/* "+ Add" on an empty field (Full access and an edit form only), the pencil on a filled one */
html:not(.ui-nl) .rpflow .rpfact{position:relative}
html:not(.ui-nl) .rpflow .rpfact > b{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:36px;min-width:0}
html:not(.ui-nl) .rpflow .rpfact .none{color:var(--faint);font-weight:400}
html:not(.ui-nl) a.rpadd{position:relative;display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px 0 10px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-family:var(--font);font-size:15px;font-weight:600;text-decoration:none}
html:not(.ui-nl) a.rpadd::after{content:"";position:absolute;inset:-5px}
html:not(.ui-nl) a.rpadd:hover{background:var(--info-bg);text-decoration:none}
html:not(.ui-nl) .rppen{position:absolute;right:0;top:20px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--cl-grey-bg);color:var(--ink);opacity:0;transition:opacity .2s}
html:not(.ui-nl) .rpfact:hover > .rppen,html:not(.ui-nl) .rppen:focus-visible{opacity:1}
@media(hover:none){ html:not(.ui-nl) .rppen{display:none} }
@media(max-width:760px){ html:not(.ui-nl) a.rpadd{min-height:44px} }
/* the address line and the lock notes */
html:not(.ui-nl) .rpnear{display:flex;align-items:center;gap:10px;margin:18px 0 0;font-size:15px;font-weight:500}
html:not(.ui-nl) .rpnear::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
html:not(.ui-nl) .rpnear.warn{color:var(--warn)} html:not(.ui-nl) .rpnear.ok{color:var(--ok)} html:not(.ui-nl) .rpnear.off{color:var(--muted)}
html:not(.ui-nl) .rplock{display:flex;align-items:flex-start;gap:10px;margin:12px 0 0;font-size:14px;color:var(--muted);line-height:1.45}
html:not(.ui-nl) .rplock svg{flex:none;margin-top:1px}
/* the resume row: a light card with a small page drawing */
html:not(.ui-nl) .rpflow .gqrow.rprow.nldoc{margin-top:20px;padding:14px 16px;border-radius:16px;background:var(--surface-2);grid-template-columns:46px minmax(0,1fr) auto;gap:16px}
html:not(.ui-nl) .rpdocpg{width:40px;height:52px;border-radius:7px;background:var(--surface);box-shadow:0 1px 2px rgba(14,21,34,.12);display:flex;flex-direction:column;gap:4px;padding:8px 7px}
html:not(.ui-nl) .rpdocpg i{height:2px;border-radius:2px;background:var(--cl-line2)}
html:not(.ui-nl) .rpdocpg i:first-child{height:3px;width:70%;background:var(--accent)}
html:not(.ui-nl) .rpdocpg i:last-child{width:80%}
/* the questionnaire's answers: no lines between the rows, the answer close to its question (the owner, 9 Oct 2026) */
html:not(.ui-nl) table.tbl.nlkv,html:not(.ui-nl) table.tbl.nlkv > tbody{display:block}
html:not(.ui-nl) table.tbl.nlkv{width:auto!important;margin:0!important}
html:not(.ui-nl) table.tbl.stack.nlkv tr{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);column-gap:28px;align-items:baseline;padding:10px 12px;margin:0 -12px;border-radius:12px;box-shadow:none!important;background:transparent!important}
html:not(.ui-nl) table.tbl.stack.nlkv tr:hover{background:var(--surface-2)!important}
html:not(.ui-nl) table.tbl.stack.nlkv td{box-shadow:none!important;background:transparent!important;padding:0!important;border:0!important}
html:not(.ui-nl) table.tbl.stack.nlkv td:first-child{color:var(--muted)}
html:not(.ui-nl) table.tbl.stack.nlkv td::before{display:none!important}
html:not(.ui-nl) .rnq-card table.tbl.stack.nlkv tr{grid-template-columns:minmax(0,260px) minmax(0,1fr)}
@media(max-width:700px){ html:not(.ui-nl) table.tbl.stack.nlkv tr{display:flex;flex-direction:column;gap:3px;padding:10px 0;margin:0} html:not(.ui-nl) table.tbl.stack.nlkv td{width:auto!important} }
/* the bar that stays at the top (a record's tab row once stuck): solid */
html:not(.ui-nl) .rtabs.stuck{background:var(--surface)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:inset 0 -1px 0 var(--cl-line),0 12px 24px -22px rgba(20,40,80,.55)!important}
@media(prefers-reduced-motion:reduce){ html:not(.ui-nl) :is(.rpbar,.rpsec,.nlring){animation:none!important;transition:none!important} }/* ===== CL2 · Settings with a side menu (canvas MCSettings) ===== */
@media(min-width:1100px){
  html:not(.ui-nl) .main:has(> nav.setsub){display:grid;grid-template-columns:248px minmax(0,1fr);column-gap:24px;row-gap:0;align-content:start}
  html:not(.ui-nl) .main:has(> nav.setsub) > *{grid-column:2;min-width:0}
  html:not(.ui-nl) .main:has(> nav.setsub) > :is(.ptitle,.sysbar,.flash,.note.top,.banners){grid-column:1 / -1}
  html:not(.ui-nl) .main:has(> nav.setsub) > :is(script,style,template,datalist,dialog){display:none}
  html:not(.ui-nl) .main > nav.sectabs.setsub{grid-column:1;grid-row:2 / span 80;align-self:start;position:sticky;top:calc(var(--hh) + var(--sat) + 16px);
    display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;width:auto;max-width:none;margin:0 0 var(--gap);padding:10px;border-radius:20px;overflow:visible;
    background:var(--cl-card)!important;box-shadow:var(--sh-card)!important}
  html:not(.ui-nl) nav.setsub a{justify-content:flex-start;min-height:42px;padding:0 12px;border-radius:12px;font-size:16px;font-weight:500;color:var(--ink)!important;background:transparent!important;box-shadow:none!important;white-space:normal;text-align:left}
  html:not(.ui-nl) nav.setsub a:hover{background:var(--surface-2)!important}
  html:not(.ui-nl) nav.setsub a.on{background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;font-weight:600}
  html:not(.ui-nl) nav.setsub .gpill{display:none!important}
}/* ===== CL2 · Candidates (candidates.php; canvas MCCandidates) ===== */
html:not(.ui-nl)[data-surface="work"] .tbl .whoav{display:flex;align-items:center;gap:14px}
html:not(.ui-nl)[data-surface="work"] .tbl .whoav > .av{width:44px!important;height:44px!important;font-size:15px!important;font-family:var(--display);font-weight:600;background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;flex:none}
html:not(.ui-nl)[data-surface="work"] .tbl .whoav .small form.inline{display:inline;margin-left:6px}
html:not(.ui-nl)[data-surface="work"] .tbl .whoav .small button.lnk{font-size:14px!important;font-weight:600}
html:not(.ui-nl)[data-surface="work"] .tbl a.actb::after{content:"";display:inline-block;width:12px;height:12px;margin-left:6px;background:var(--chev-img) center/12px no-repeat}
html:not(.ui-nl)[data-surface="work"] .tbl td.acts{text-align:right}/* ===== CL2b · Interviews on the candidate record (core/cl2b.php; canvas MCIvTab, MCIvProfile, MCIvNew, MCIvNotes, MCPhIv) ===== */
html:not(.ui-nl) .ivcard{padding:24px}
html:not(.ui-nl) .ivhd{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
html:not(.ui-nl) .ivhdt h2{margin:0;font-size:var(--fs-card);font-weight:500}
html:not(.ui-nl) .ivhdt p{margin:4px 0 0;color:var(--muted)}
html:not(.ui-nl) .ivhda{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .ivhda details.ivnewd > summary{list-style:none}
html:not(.ui-nl) .ivhda details.ivnewd > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) :where(.ivcard,.ivpsec,.ivnewp,.ivnotesp,.ivhchip,.ivmore,.ivnewd) svg.ic{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) svg.ic.ivstar{color:var(--cl-warndot);fill:currentColor;stroke:currentColor}
html:not(.ui-nl) .ivtile.none svg.ic{color:var(--cl-warndot);fill:none;stroke:currentColor;stroke-width:1.6}
/* the date tile */
html:not(.ui-nl) .ivtile{display:flex;flex-direction:column;align-items:center;justify-content:center;width:88px;min-width:88px;min-height:88px;padding:8px 4px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);text-align:center;line-height:1.15}
html:not(.ui-nl) .ivtile small{font-size:var(--fs-sm);font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--cl-infodot)}
html:not(.ui-nl) .ivtile b{font-family:var(--display);font-weight:400;font-size:var(--fs-kpi-sm);color:var(--ink);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .ivtile i{font-style:normal;font-size:var(--fs-sm);color:var(--cl-ink2);white-space:nowrap}
html:not(.ui-nl) .ivtile.wait{background:var(--warn-bg);box-shadow:none}
html:not(.ui-nl) .ivtile.wait small{color:var(--warn)}
html:not(.ui-nl) .ivtile.none{background:var(--cl-grey-bg);box-shadow:none;color:var(--cl-warndot)}
html:not(.ui-nl) .ivtile.none svg{width:28px;height:28px}
/* the pinned screening */
html:not(.ui-nl) .ivpin{display:flex;gap:16px;align-items:flex-start;padding:16px;border-radius:18px;background:var(--info-bg);box-shadow:inset 0 0 0 1px var(--cl-fring)}
html:not(.ui-nl) .ivpin.none{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--cl-line2)}
html:not(.ui-nl) .ivpb{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) a.ivpinph{display:none}
html:not(.ui-nl) .ivpt{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .ivpt h3{margin:0;font-size:var(--fs-lg);font-weight:600}
html:not(.ui-nl) .ivpt .ivstar{width:18px;height:18px}
html:not(.ui-nl) .ivpinw{color:var(--muted)}
html:not(.ui-nl) .ivpa{display:flex;align-items:center;gap:8px;flex:none;flex-wrap:wrap;justify-content:flex-end}
html:not(.ui-nl) .ivmeta{display:flex;flex-wrap:wrap;gap:4px 16px;color:var(--cl-ink2);font-size:var(--fs)}
html:not(.ui-nl) .ivm{display:inline-flex;align-items:center;gap:8px;min-width:0}
html:not(.ui-nl) .ivm .ic{color:var(--muted)}
html:not(.ui-nl) .ivm a{color:inherit}
html:not(.ui-nl) .ivchips{display:flex;flex-wrap:wrap;gap:8px}
html:not(.ui-nl) .ivtag{display:inline-flex;align-items:center;min-height:32px;padding:0 12px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);font-size:var(--fs-sm);font-weight:600;color:var(--ink)}
html:not(.ui-nl) .ivredo{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;margin-top:4px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) details.ivearly,html:not(.ui-nl) details.ivgone{margin-top:12px}
html:not(.ui-nl) details.ivearly > summary,html:not(.ui-nl) details.ivgone > summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:var(--fs);min-height:44px;display:inline-flex;align-items:center}
html:not(.ui-nl) .ivgl{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .ivgl li{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
/* the times waiting */
html:not(.ui-nl) .ivtimes{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .ivtimes > .ic{color:var(--muted)}
html:not(.ui-nl) .ivslot{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:8px;background:var(--warn-bg);color:var(--ink);font-size:var(--fs-sm);font-weight:600}
/* job interviews */
html:not(.ui-nl) .ivjh{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:24px 0 4px}
html:not(.ui-nl) .ivjh h3{margin:0;font-size:var(--fs-lg);font-weight:600}
html:not(.ui-nl) .ivjh .small{color:var(--muted)}
html:not(.ui-nl) .ivgrp{margin:12px 0 4px;font-size:var(--fs-sm);font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .ivempty{color:var(--muted);margin:8px 0 0}
html:not(.ui-nl) .ivlist{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .ivrowc{display:grid;grid-template-columns:88px minmax(0,1fr) 150px 330px;gap:16px;align-items:center;padding:16px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ivlist > .ivrowc:first-child{border-top:0}
html:not(.ui-nl) .ivrb{min-width:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .ivrt{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .ivrt h4{margin:0;font-size:var(--fs-lg);font-weight:600}
html:not(.ui-nl) .ivra{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-wrap:nowrap}
html:not(.ui-nl) form.ivinl{display:inline-flex;margin:0}
html:not(.ui-nl) .ivtrack{display:flex;flex-direction:column;gap:8px;min-width:0}
html:not(.ui-nl) .ivbars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
html:not(.ui-nl) .ivbars i{height:4px;border-radius:2px;background:var(--cl-line2)}
html:not(.ui-nl) .ivbars i.on{background:var(--cl-infodot)}
html:not(.ui-nl) .ivstepw{font-size:var(--fs-sm);color:var(--cl-ink2)}
html:not(.ui-nl) .ivstepw b{color:var(--cl-infodot)}
html:not(.ui-nl) .ivfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) details.ivmore > summary{list-style:none}
html:not(.ui-nl) details.ivmore > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .galist .garow small{display:block;font-size:var(--fs-sm);color:var(--muted);font-weight:400}
/* the New interview drawer */
html:not(.ui-nl) .ivnewp,html:not(.ui-nl) .ivnotesp{display:flex;flex-direction:column;gap:16px;min-width:0}
html:not(.ui-nl) .ivnf{display:flex;flex-direction:column;gap:16px;margin:0}
html:not(.ui-nl) .ivnwho{margin:0;color:var(--muted)}
html:not(.ui-nl) .ivfs{border:0;margin:0;padding:0;min-width:0}
html:not(.ui-nl) .ivfs > legend{font-weight:600;font-size:var(--fs-sm);padding:0;margin-bottom:8px;color:var(--ink)}
html:not(.ui-nl) .ivopts{display:grid;gap:12px}
html:not(.ui-nl) .ivopts.two{grid-template-columns:repeat(2,minmax(0,1fr))}
html:not(.ui-nl) .ivopts.three{grid-template-columns:repeat(3,minmax(0,1fr))}
html:not(.ui-nl) label.ivopt{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);cursor:pointer;min-height:44px}
html:not(.ui-nl) label.ivopt input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) label.ivopt:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 1.5px var(--cl-infodot)}
html:not(.ui-nl) label.ivopt:has(input:focus-visible){box-shadow:inset 0 0 0 1.5px var(--cl-infodot),0 0 0 4px var(--cl-fring)}
html:not(.ui-nl) label.ivopt:has(input:disabled){opacity:.55;cursor:not-allowed}
html:not(.ui-nl) .ivoi{flex:none;color:var(--cl-infodot);padding-top:4px}
html:not(.ui-nl) .ivot{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .ivot b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .ivot small{font-size:var(--fs-sm);color:var(--cl-ink2);line-height:1.35}
html:not(.ui-nl) .ivseg{display:inline-flex;flex-wrap:wrap;gap:4px;padding:4px;border-radius:999px;background:var(--cl-grey-bg)}
html:not(.ui-nl) label.ivsg{position:relative;display:inline-flex}
html:not(.ui-nl) label.ivsg input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) label.ivsg span{display:inline-flex;align-items:center;justify-content:center;min-height:40px;min-width:52px;padding:0 16px;border-radius:999px;font-weight:600;color:var(--cl-ink2);cursor:pointer}
html:not(.ui-nl) label.ivsg input:checked + span{background:var(--surface);color:var(--ink);box-shadow:var(--sh-card)}
html:not(.ui-nl) label.ivsg input:focus-visible + span{box-shadow:0 0 0 3px var(--cl-fring)}
html:not(.ui-nl) .ivhint{display:block;font-size:var(--fs-sm);color:var(--muted);margin-top:4px}
html:not(.ui-nl) .ivusual{margin:0 0 8px;color:var(--muted)}
html:not(.ui-nl) .ivtrow{display:grid;grid-template-columns:24px minmax(0,1.2fr) minmax(0,1fr);gap:12px;align-items:end;margin-bottom:12px}
html:not(.ui-nl) .ivtn{align-self:center;font-weight:600;color:var(--cl-infodot);padding-top:24px}
html:not(.ui-nl) .ivtrow.sub .ivtn{padding-top:0}
html:not(.ui-nl) .ivtrow.sub .nlwl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html:not(.ui-nl) details.ivmoret > summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--accent);font-weight:600}
html:not(.ui-nl) details.ivmoret > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .ivnsub{display:flex;flex-direction:column;gap:8px;position:sticky;bottom:0;padding-top:12px;background:var(--surface);box-shadow:0 40px 0 var(--surface)}
html:not(.ui-nl) .ivnhint{margin:0;text-align:center;color:var(--muted)}
html:not(.ui-nl) .ivnf [hidden],html:not(.ui-nl) .ivnotesp [hidden]{display:none!important}
/* the notes drawer */
html:not(.ui-nl) details.ivnotesd > summary.ivnsum{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html:not(.ui-nl) .ivnwhen{margin:0;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .ivnst{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .ivnst .ivspeak{margin-left:auto}
html:not(.ui-nl) .ivnform{display:flex;flex-direction:column;gap:0;margin:0}
html:not(.ui-nl) .ivq{padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ivq:first-of-type{border-top:0}
html:not(.ui-nl) .ivq label,html:not(.ui-nl) .ivql{display:block;font-weight:600;margin-bottom:8px;color:var(--ink)}
html:not(.ui-nl) .ivq .qn{color:var(--cl-infodot);font-weight:600;margin-right:8px}
html:not(.ui-nl) .ivq textarea{width:100%;min-height:64px}
html:not(.ui-nl) .ivq .vbtn{display:none}
html:not(.ui-nl) .ivans{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--cl-ink2)}
html:not(.ui-nl) .ivans.none{color:var(--muted);font-style:italic}
html:not(.ui-nl) .ivdec{border:0;margin:8px 0 0;padding:12px 0 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ivdec > legend{font-weight:600;padding:0;margin-bottom:8px}
html:not(.ui-nl) .ivdec label.ivopt{flex-direction:column;align-items:center;text-align:center;gap:4px}
html:not(.ui-nl) .ivdec label.ivopt .ivot{align-items:center}
html:not(.ui-nl) .ivdec label.d-advance:has(input:checked){background:var(--ok-bg);box-shadow:inset 0 0 0 1.5px var(--cl-okdot)}
html:not(.ui-nl) .ivdec label.d-advance .ivoi{color:var(--ok)}
html:not(.ui-nl) .ivdec label.d-not_fit .ivoi,html:not(.ui-nl) .ivdec label.d-hold .ivoi{color:var(--cl-ink2)}
html:not(.ui-nl) .ivdh{margin:8px 0 0;color:var(--muted)}
html:not(.ui-nl) .ivnbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;position:sticky;bottom:0;padding:12px 0 4px;background:var(--surface);box-shadow:0 40px 0 var(--surface)}
html:not(.ui-nl) dialog.gsheet.from-right:has(.gsrc.ivnewd),html:not(.ui-nl) dialog.gsheet.from-right:has(.gsrc.ivnotesd){width:min(640px,94vw)}
html:not(.ui-nl) .ivnbar .btn{min-height:52px}
html:not(.ui-nl) .ivdecw{display:flex;align-items:center;gap:8px;margin:12px 0}
html:not(.ui-nl) .ivclose{margin:0}
/* the Profile's section */
html:not(.ui-nl) .ivpp{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;border-radius:14px;background:var(--info-bg)}
html:not(.ui-nl) .ivpp.none{background:var(--cl-grey-bg)}
html:not(.ui-nl) .ivpp .small{color:var(--cl-ink2)}
html:not(.ui-nl) .ivppa{margin-left:auto;font-weight:600;min-height:44px;display:inline-flex;align-items:center}
html:not(.ui-nl) .ivpg{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:24px;margin-top:16px}
html:not(.ui-nl) .ivpg .lbl{display:block;font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin-bottom:8px}
html:not(.ui-nl) .ivpn{display:flex;gap:16px;align-items:flex-start}
html:not(.ui-nl) .ivpn b{font-weight:600}
html:not(.ui-nl) .ivpnb{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
html:not(.ui-nl) .ivpside{display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .ivpline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}
html:not(.ui-nl) .ivpfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ivpall{display:inline-flex;align-items:center;gap:4px;font-weight:600;min-height:44px}
html:not(.ui-nl) .ivfwd{transform:scaleX(-1)}
html:not(.ui-nl) .rprl .ivrailn,html:not(.ui-nl) .rpchips .ivrailn{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 8px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-size:var(--fs-sm);font-weight:600;margin-left:auto}
/* the head's chip */
html:not(.ui-nl) .ivhchip{display:inline-flex;align-items:center;gap:8px;text-decoration:none}
html:not(.ui-nl) .ivhchip .ivstar{width:14px;height:14px}
@media(max-width:1100px){
  html:not(.ui-nl) .ivrowc{grid-template-columns:88px minmax(0,1fr) auto}
  html:not(.ui-nl) .ivrowc .ivtrack{grid-column:2}
  html:not(.ui-nl) .ivrowc .ivra{grid-column:3;grid-row:1}
}
@media(max-width:820px){
  html:not(.ui-nl) .ivcard{padding:16px 16px}
  html:not(.ui-nl) .ivhd{flex-direction:row;align-items:center}
  html:not(.ui-nl) .ivhdt p{display:none}
  html:not(.ui-nl) .ivpin{flex-wrap:wrap;gap:12px;padding:12px}
  html:not(.ui-nl) .ivpin > .ivtile{display:none}
  html:not(.ui-nl) .ivhda > .chip{display:none}
  html:not(.ui-nl) .ivhd{flex-wrap:nowrap}
  html:not(.ui-nl) .ivpin.held .ivpb{display:none}
  html:not(.ui-nl) .ivpin.held{padding:8px 8px 8px 12px;align-items:center;flex-wrap:nowrap}
  html:not(.ui-nl) .ivpin.held a.ivpinph{display:flex;flex:1;min-width:0;align-items:center;gap:12px;min-height:56px;color:var(--ink);text-decoration:none}
  html:not(.ui-nl) a.ivpinph span{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
  html:not(.ui-nl) a.ivpinph b{font-weight:600;font-size:var(--fs-lg)}
  html:not(.ui-nl) a.ivpinph small{font-size:var(--fs-sm);color:var(--cl-ink2);line-height:1.35}
  html:not(.ui-nl) a.ivpinph .ivfwd{color:var(--muted)}
  html:not(.ui-nl) .ivpin.held .ivpa{width:auto;flex:none}
  html:not(.ui-nl) .ivpin.held .ivpa > .btn{display:none}
  html:not(.ui-nl) .ivrowc .ivtrack{display:none}
  html:not(.ui-nl) .ivra .btn{white-space:nowrap}
  html:not(.ui-nl) .ivra .ivlg{display:none}
  html:not(.ui-nl) .ivpa{width:100%;justify-content:flex-start}
  html:not(.ui-nl) .ivrowc{grid-template-columns:76px minmax(0,1fr);gap:12px;padding:16px 0;align-items:start}
  html:not(.ui-nl) .ivtile{width:76px;min-width:76px;min-height:76px}
  html:not(.ui-nl) .ivrowc .ivtrack{grid-column:1 / -1}
  html:not(.ui-nl) .ivrowc .ivra{grid-column:1 / -1;grid-row:auto;justify-content:stretch}
  html:not(.ui-nl) .ivrowc .ivra > .btn,html:not(.ui-nl) .ivrowc .ivra > form.ivinl{flex:1 1 auto}
  html:not(.ui-nl) .ivrowc .ivra > form.ivinl .btn{width:100%}
  html:not(.ui-nl) .ivrowc .ivra .btn{min-height:44px}
  html:not(.ui-nl) .ivpin .btn,html:not(.ui-nl) .ivpp .btn{min-height:44px}
  html:not(.ui-nl) .ivopts.three{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .ivopts.two{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .ivdec .ivopts.three{grid-template-columns:repeat(3,minmax(0,1fr))}
  html:not(.ui-nl) .ivtrow{grid-template-columns:20px minmax(0,1fr);row-gap:8px}
  html:not(.ui-nl) .ivtrow .dtpf[data-dtp="time"]{grid-column:2}
  html:not(.ui-nl) .ivpg{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .ivfoot .btn,html:not(.ui-nl) .ivpfoot .btn{min-height:44px}
}/* ===== CL2c · the client record (core/cl2c.php; canvas MCClOverview, MCClBilling, MCClLocked, MCClNotes, MCClPerm, MCPhClient) ===== */
html:not(.ui-nl) :where(.clnav,.cchead,.cctodo,.ccnums,.ccknow,.ccorg,.cclines,.ccagree,.ccmoney,.cccard,.ccnewp,.ccnotesd,.ccrev,.ccperm,.ccmore,.cchchip,.ivnotesp,.ivnewp) svg.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) svg.ic.ivstar{fill:currentColor}
/* ---- the record laid out with the menu on the left (a computer) ---- */
@media(min-width:1180px){
  html:not(.ui-nl) .main:has(> nav.clnav){display:grid;grid-template-columns:280px minmax(0,1fr);column-gap:24px;row-gap:0;align-content:start}
  html:not(.ui-nl) .main:has(> nav.clnav) > *{grid-column:1 / -1;min-width:0}
  html:not(.ui-nl) .main > nav.clnav ~ *{grid-column:2}
  html:not(.ui-nl) .main:has(> nav.clnav) > :is(script,style,template,datalist){display:none}
  html:not(.ui-nl) .main > nav.clnav{grid-column:1;grid-row:span 400;align-self:start;position:sticky;top:calc(var(--hh) + var(--sat) + 16px);margin:0 0 var(--gap);padding:12px;border-radius:20px;background:var(--cl-card);box-shadow:inset 0 1px 0 var(--sheen),var(--sh-card)}
  html:not(.ui-nl) .clnavi{display:flex;flex-direction:column;gap:4px}
  html:not(.ui-nl) .clgrp{display:flex;flex-direction:column;gap:2px}
  html:not(.ui-nl) .clis{display:flex;flex-direction:column;gap:2px;margin:2px 0 8px 22px;padding-left:12px;box-shadow:inset 1px 0 0 var(--cl-line2)}
}
html:not(.ui-nl) a.clg{display:flex;align-items:center;gap:12px;min-height:44px;padding:0 12px;border-radius:12px;font-weight:600;font-size:var(--fs);color:var(--ink);text-decoration:none}
html:not(.ui-nl) a.clg:hover{background:var(--surface-2)}
html:not(.ui-nl) a.clg.on{background:var(--btn);color:var(--on-btn)}
html:not(.ui-nl) a.clg > span:first-of-type{flex:1;min-width:0}
html:not(.ui-nl) a.cli{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 12px;border-radius:10px;font-size:var(--fs-sm);font-weight:500;color:var(--cl-ink2);text-decoration:none}
html:not(.ui-nl) a.cli > span:first-child{flex:1;min-width:0}
html:not(.ui-nl) a.cli:hover{background:var(--surface-2)}
html:not(.ui-nl) a.cli.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}
html:not(.ui-nl) a.cli svg.clstar{width:14px;height:14px;color:var(--cl-warndot);fill:currentColor}
html:not(.ui-nl) .cln{flex:none;font-size:var(--fs-sm);font-weight:600;color:var(--cl-ink2);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .cln.warn{color:var(--warn)}
html:not(.ui-nl) a.clg .cln{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border-radius:999px;background:var(--warn-bg);color:var(--warn)}
html:not(.ui-nl) a.clg.on .cln{background:var(--surface);color:var(--warn)}
/* ---- the menu on a phone or a narrow screen: the groups as chips, the open group's items under them ---- */
@media(max-width:1179px){
  html:not(.ui-nl) nav.clnav{margin:0 0 16px}
  html:not(.ui-nl) .clnavi{display:flex;flex-wrap:wrap;gap:8px}
  html:not(.ui-nl) .clgrp{display:contents}
  html:not(.ui-nl) a.clg{order:1;flex:none;min-height:44px;padding:0 16px;border-radius:999px;background:var(--cl-card);box-shadow:var(--sh-card)}
  html:not(.ui-nl) a.clg svg.ic{display:none}
  html:not(.ui-nl) a.clg .cln{display:none}
  html:not(.ui-nl) .clis{order:2;flex:1 1 100%;display:none;gap:8px;overflow-x:auto;scrollbar-width:none;padding:4px 0}
  html:not(.ui-nl) .clis::-webkit-scrollbar{display:none}
  html:not(.ui-nl) .clgrp.open .clis{display:flex}
  html:not(.ui-nl) a.cli{flex:none;min-height:44px;padding:0 14px;border-radius:999px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);white-space:nowrap}
  html:not(.ui-nl) a.cli.on{box-shadow:none}
}
/* ---- the head (MCClOverview) ---- */
html:not(.ui-nl) .cchead{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:24px;align-items:center;margin-bottom:var(--gap)}
html:not(.ui-nl) .ccav{display:flex;align-items:center;justify-content:center;width:76px;height:76px;border-radius:20px;background:var(--accent-soft);color:var(--on-accent-soft);font-family:var(--display);font-size:var(--fs-card);font-weight:600}
html:not(.ui-nl) .ccid{min-width:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .ccnl{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .ccnl h1{margin:0;font-family:var(--display);font-size:var(--fs-kpi);font-weight:400;letter-spacing:-.015em;line-height:1.15;overflow-wrap:anywhere}
html:not(.ui-nl) .ccsub{display:flex;flex-wrap:wrap;gap:4px 24px;margin:0;color:var(--cl-ink2);font-size:var(--fs)}
html:not(.ui-nl) .ccsub > span{display:inline-flex;align-items:center;gap:8px;min-width:0}
html:not(.ui-nl) .ccsub svg.ic{color:var(--muted);width:16px;height:16px;align-self:flex-start;margin-top:4px}
html:not(.ui-nl) .ccsub a{font-weight:600}
html:not(.ui-nl) .ccacts{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}
html:not(.ui-nl) .ccacts .btn{min-height:52px}
html:not(.ui-nl) .ccacts .btn.big{padding:0 24px}
html:not(.ui-nl) .ccacts details.ccmore > summary{list-style:none;width:52px;height:52px}
html:not(.ui-nl) .ccacts details.ccmore > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .ccacts .pinf{margin:0}
html:not(.ui-nl) .ccacts .rmorep .pinf .btn{width:100%;justify-content:flex-start}
html:not(.ui-nl) a.cchchip{display:inline-flex;align-items:center;gap:6px;text-decoration:none}
html:not(.ui-nl) a.cchchip svg.ivstar{width:14px;height:14px;color:var(--cl-warndot)}
@media(max-width:820px){
  html:not(.ui-nl) .cchead{grid-template-columns:56px minmax(0,1fr);gap:16px}
  html:not(.ui-nl) .ccav{width:56px;height:56px;border-radius:16px;font-size:var(--fs-h2)}
  html:not(.ui-nl) .ccnl h1{font-size:var(--fs-card)}
  html:not(.ui-nl) .ccnl .chip{display:none}
  html:not(.ui-nl) .ccacts{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) 48px;gap:8px}
  html:not(.ui-nl) .ccacts .btn{min-height:48px;padding:0 12px}
  html:not(.ui-nl) .ccacts details.ccmore > summary{width:48px;height:48px}
}
/* ---- the Overview: To do, the numbers, What we know ---- */
html:not(.ui-nl) .cctl{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .cctr{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .cctr:first-child{box-shadow:none;padding-top:4px}
html:not(.ui-nl) .ccdot{display:block;width:24px;height:24px;border-radius:50%;background:var(--warn-bg);position:relative}
html:not(.ui-nl) .ccdot::after{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--cl-warndot)}
html:not(.ui-nl) .ccdot.mute{background:var(--cl-grey-bg)}
html:not(.ui-nl) .ccdot.mute::after{background:var(--cl-greydot)}
html:not(.ui-nl) .cctt{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .cctt b{font-weight:600;font-size:var(--fs-lg)}
html:not(.ui-nl) .cctt span{color:var(--cl-ink2)}
html:not(.ui-nl) .ccta{display:flex;justify-content:flex-end}
html:not(.ui-nl) .ccta .btn svg.ic{width:16px;height:16px}
html:not(.ui-nl) details.ccrev > summary{list-style:none}
html:not(.ui-nl) details.ccrev > summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .ccrevp{padding:12px;min-width:260px}
html:not(.ui-nl) .ccrevp form{display:flex;flex-direction:column;gap:12px;margin:0}
html:not(.ui-nl) .ccrevb{display:flex}
html:not(.ui-nl) .ccnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
html:not(.ui-nl) a.ccnum{display:flex;flex-direction:column;gap:4px;min-width:0;padding:4px 0;color:var(--ink);text-decoration:none;border-radius:12px}
html:not(.ui-nl) a.ccnum:hover b{color:var(--accent)}
html:not(.ui-nl) a.ccnum b{font-family:var(--display);font-weight:400;font-size:var(--fs-kpi);line-height:1.1;font-variant-numeric:tabular-nums}
html:not(.ui-nl) a.ccnum span{font-weight:600}
html:not(.ui-nl) a.ccnum small{font-size:var(--fs-sm);color:var(--cl-ink2);overflow-wrap:anywhere}
html:not(.ui-nl) .ccknowh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
html:not(.ui-nl) .ccknowh h2{margin:0;font-size:var(--fs-card);font-weight:400}
html:not(.ui-nl) .ccknowh svg.ivstar{width:20px;height:20px;color:var(--cl-warndot)}
html:not(.ui-nl) .ccknowb{margin-left:auto}
html:not(.ui-nl) .ccknow .ivchips{margin-bottom:4px}
html:not(.ui-nl) .ccknowe{margin:0;color:var(--cl-ink2)}
html:not(.ui-nl) .ccnext{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:16px 0 0;padding-top:16px;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .ccnext .lbl{font-weight:600;color:var(--cl-ink2)}
@media(max-width:820px){
  html:not(.ui-nl) .ccnums{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
  html:not(.ui-nl) .cctr{grid-template-columns:24px minmax(0,1fr);row-gap:12px}
  html:not(.ui-nl) .ccta{grid-column:2;justify-content:flex-start}
  html:not(.ui-nl) .ccknowb{margin-left:0}
}
/* ---- the locks ---- */
html:not(.ui-nl) .cclockc,html:not(.ui-nl) .cclock{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:999px;background:var(--cl-grey-bg);color:var(--cl-ink2);font-size:var(--fs-sm);font-weight:600;white-space:nowrap}
html:not(.ui-nl) :is(.cclockc,.cclock,.cclocknote,.cclockbar,.cclockm,.ivnwho) svg.ic{width:14px;height:14px}
html:not(.ui-nl) .cclocknote{display:flex;align-items:flex-start;gap:12px;margin:4px 0 0;padding:12px 16px;border-radius:14px;background:var(--surface);box-shadow:inset 0 0 0 1px var(--cl-line2);color:var(--cl-ink2)}
html:not(.ui-nl) .cclocknote svg.ic{margin-top:4px;color:var(--muted)}
html:not(.ui-nl) .cclockbar{display:flex;align-items:flex-start;gap:12px;margin:0;padding:12px 16px;border-radius:14px;background:var(--cl-grey-bg);font-weight:600;color:var(--ink)}
html:not(.ui-nl) .cclockbar svg.ic{margin-top:4px}
html:not(.ui-nl) a.ivpinph .cclockm{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-style:normal;font-size:var(--fs-sm);font-weight:600;color:var(--cl-ink2);padding:2px 10px;border-radius:999px;background:var(--surface)}
html:not(.ui-nl) .ccpin.locked{background:var(--surface-2)}
html:not(.ui-nl) .ccnh{display:flex;align-items:center;gap:12px;margin:0;font-family:var(--display);font-size:var(--fs-card);font-weight:400}
html:not(.ui-nl) .ccnh svg.ivstar{width:20px;height:20px;color:var(--cl-warndot)}
/* the three steps */
html:not(.ui-nl) .cccard .ivhd{flex-wrap:nowrap}
html:not(.ui-nl) .cccard .ivhdt{flex:1;min-width:0}
html:not(.ui-nl) .ccpin{flex-wrap:wrap}
html:not(.ui-nl) .ccpin > .ivpb{flex:1 1 0}
html:not(.ui-nl) .ccpinchips{flex:1 1 100%;padding-left:104px}
html:not(.ui-nl) .ivbars.ccbars{grid-template-columns:repeat(3,1fr)}
html:not(.ui-nl) .ccbars i.on.done{background:var(--cl-okdot)}
html:not(.ui-nl) .cccard .ivrowc{grid-template-columns:88px minmax(0,1fr) 170px 230px}
html:not(.ui-nl) .ccdec label.t-ok:has(input:checked){background:var(--ok-bg);box-shadow:inset 0 0 0 1.5px var(--cl-okdot)}
html:not(.ui-nl) .ccdec label.t-ok .ivoi{color:var(--ok)}
html:not(.ui-nl) .ccdec label.t-warn:has(input:checked){background:var(--warn-bg);box-shadow:inset 0 0 0 1.5px var(--cl-warndot)}
html:not(.ui-nl) .ccdec label.t-bad:has(input:checked){background:var(--cl-grey-bg);box-shadow:inset 0 0 0 1.5px var(--cl-greydot)}
html:not(.ui-nl) .ccdec label:is(.t-warn,.t-bad) .ivoi{color:var(--cl-ink2)}
html:not(.ui-nl) .ivnwho svg.ic{display:inline;vertical-align:-2px;margin:0 2px}
html:not(.ui-nl) label.permscope{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:8px 0;text-align:left}
html:not(.ui-nl) dialog.gsheet.from-right:has(.gsrc.ccnewd),html:not(.ui-nl) dialog.gsheet.from-right:has(.gsrc.ccnotesd){width:min(640px,94vw)}
html:not(.ui-nl) .cccard .ivrt .chip{flex-shrink:0}
@media(max-width:1599px){
  html:not(.ui-nl) .cccard .ivrowc{grid-template-columns:88px minmax(0,1fr) auto}
  html:not(.ui-nl) .cccard .ivrowc .ivtrack{grid-column:2}
  html:not(.ui-nl) .cccard .ivrowc .ivra{grid-column:3;grid-row:1}
}
@media(max-width:820px){
  html:not(.ui-nl) .cccard .ivrowc{grid-template-columns:76px minmax(0,1fr)}
  html:not(.ui-nl) .cccard .ivrowc .ivra{grid-column:1 / -1;grid-row:auto}
  html:not(.ui-nl) .cccard .ivrowc .ivtrack{grid-column:1 / -1}
  html:not(.ui-nl) .ccpinchips{padding-left:0}
  html:not(.ui-nl) .cccard .ivhd{flex-wrap:wrap;gap:12px}
  html:not(.ui-nl) .cccard .ivhdt{flex:1 1 100%}
  html:not(.ui-nl) .cccard .ivhda{flex:1 1 100%}
  html:not(.ui-nl) .cccard .ivhda details.ccnewd > summary{width:100%;justify-content:center}
  html:not(.ui-nl) .ccpin.held .ccpinchips{display:none}
  html:not(.ui-nl) .ccpin.held .cclockm,html:not(.ui-nl) .ccpin:not(.locked) .cclockm{display:inline-flex}
  html:not(.ui-nl) .cccard .ivhda details.ccnewd > summary{min-height:44px}
}
/* ---- the Organization page (MCClBilling) ---- */
html:not(.ui-nl) .ccsh{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}
html:not(.ui-nl) .ccsh h2{margin:0;font-size:var(--fs-card);font-weight:400}
html:not(.ui-nl) .ccsh .hsp{flex:1}
html:not(.ui-nl) .ccsico{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .ccfs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 24px}
html:not(.ui-nl) .ccfs.two{grid-template-columns:repeat(2,minmax(0,1fr))}
html:not(.ui-nl) .ccfs.four{grid-template-columns:repeat(4,minmax(0,1fr))}
html:not(.ui-nl) .ccf{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .ccf .lbl{font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
html:not(.ui-nl) .ccfv{font-size:var(--fs-lg);font-weight:500;color:var(--ink);overflow-wrap:anywhere;display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .ccfv a{font-weight:600}
html:not(.ui-nl) button.cccp{width:32px;height:32px;min-height:32px;border-radius:50%;background:var(--surface-2)}
html:not(.ui-nl) button.cccp svg.ic{width:14px;height:14px}
html:not(.ui-nl) .cclchips{display:flex;flex-wrap:wrap;gap:8px}
html:not(.ui-nl) .ccline{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;background:var(--cl-grey-bg);color:var(--cl-ink2);font-weight:600;font-size:var(--fs-sm)}
html:not(.ui-nl) .ccline.on{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) a.ccadd{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 14px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:var(--fs-sm);text-decoration:none}
html:not(.ui-nl) a.ccadd svg.ic{width:14px;height:14px}
html:not(.ui-nl) .ccmoneyn{margin:0}
html:not(.ui-nl) .ccfv:has(> .cccp){flex-wrap:nowrap}
@media(max-width:820px){
  html:not(.ui-nl) a.ccadd{min-height:44px}
  html:not(.ui-nl) button.cccp{width:44px;height:44px;min-height:44px}
}
@media(max-width:820px){
  html:not(.ui-nl) .ccfs,html:not(.ui-nl) .ccfs.four{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .ccfs.two{grid-template-columns:minmax(0,1fr)}
}
/* ---- Settings: Client notes (MCClPerm) and the discovery questions ---- */
html:not(.ui-nl) .ccperms{margin:0 0 16px;color:var(--cl-ink2);max-width:72ch}
html:not(.ui-nl) .ccpermf{display:flex;flex-direction:column;margin:0}
html:not(.ui-nl) label.ccprow{display:grid;grid-template-columns:minmax(0,1.2fr) 64px minmax(0,1.6fr);gap:16px;align-items:center;min-height:56px;padding:8px 0;box-shadow:inset 0 1px 0 var(--cl-line);cursor:pointer}
html:not(.ui-nl) label.ccprow:first-child{box-shadow:none}
html:not(.ui-nl) .ccprn{font-weight:600}
html:not(.ui-nl) .ccprw{font-size:var(--fs-sm);color:var(--cl-ink2)}
html:not(.ui-nl) .ccsw{position:relative;display:inline-flex;width:48px;height:28px}
html:not(.ui-nl) .ccsw input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
html:not(.ui-nl) .ccsw i{display:block;width:48px;height:28px;border-radius:999px;background:var(--cl-grey-bg);box-shadow:inset 0 0 0 1px var(--cl-line2);position:relative}
html:not(.ui-nl) .ccsw i::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);box-shadow:var(--sh-card)}
html:not(.ui-nl) .ccsw input:checked + i{background:var(--btn);box-shadow:none}
html:not(.ui-nl) .ccsw input:checked + i::after{left:23px}
html:not(.ui-nl) .ccsw input:disabled + i{opacity:.55}
html:not(.ui-nl) .ccsw input:focus-visible + i{box-shadow:0 0 0 3px var(--cl-fring)}
html:not(.ui-nl) .ccpermb{padding-top:16px}
html:not(.ui-nl) .ccql{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:12px}
html:not(.ui-nl) .ccqr{display:grid;grid-template-columns:minmax(0,1fr) 190px 160px;gap:12px;align-items:end}
@media(max-width:820px){
  html:not(.ui-nl) label.ccprow{grid-template-columns:minmax(0,1fr) 56px;row-gap:4px}
  html:not(.ui-nl) .ccprw{grid-column:1 / -1}
  html:not(.ui-nl) .ccqr{grid-template-columns:minmax(0,1fr);padding-bottom:12px;box-shadow:inset 0 -1px 0 var(--cl-line)}
}/* ===== CL2d · from lead to client (core/cl2d.php; canvas MCLeadDiscovery, MCLeadConvert, MCClHistory, MCLeadAfter) ===== */
html:not(.ui-nl) .cdstages{display:flex;gap:6px;list-style:none;margin:0 0 var(--gap);padding:0}
html:not(.ui-nl) .cdstages li{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:6px}
html:not(.ui-nl) .cdstages li i{display:block;height:6px;border-radius:6px;background:var(--cl-line2)}
html:not(.ui-nl) .cdstages li span{font-size:var(--fs-2xs);font-weight:600;color:var(--muted);overflow-wrap:anywhere;line-height:1.25}
html:not(.ui-nl) .cdstages li.done i{background:var(--cl-okdot)}
html:not(.ui-nl) .cdstages li.now i{background:var(--btn)}
html:not(.ui-nl) .cdstages li.now span{color:var(--ink);font-weight:700}
html:not(.ui-nl) .cdlost{margin:-12px 0 var(--gap)}
@media(max-width:640px){ html:not(.ui-nl) .cdstages li:not(.now) span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap} html:not(.ui-nl) .cdstages li.now{flex:2 1 0} }
html:not(.ui-nl) .cdban{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 var(--gap);padding:16px 20px;border-radius:20px;background:var(--ok-bg);color:var(--ink)}
html:not(.ui-nl) .cdban > svg.ic{width:22px;height:22px;flex:none;color:var(--ok);fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .cdban p{flex:1 1 280px;margin:0;font-size:var(--fs)}
html:not(.ui-nl) .cdban a:not(.btn){color:inherit}
html:not(.ui-nl) .cdro{display:inline-flex;align-items:center;min-height:28px;padding:0 12px;border-radius:999px;background:var(--surface-2);color:var(--cl-ink2);font-size:var(--fs-sm);font-weight:600}
html:not(.ui-nl) .cddiv{display:flex;align-items:center;gap:12px;margin:24px 0 12px;font-size:var(--fs-sm);font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .cddiv::before,html:not(.ui-nl) .cddiv::after{content:"";flex:1 1 24px;height:1px;background:var(--cl-line2)}
html:not(.ui-nl) .cddiv span{flex:0 1 auto;min-width:0;text-align:center;overflow-wrap:anywhere}
html:not(.ui-nl) .cddiv a{color:inherit}
html:not(.ui-nl) .cdhid{margin:0 0 12px}
html:not(.ui-nl) :where(.cvp,.cdban,.cdcard) svg.ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .cvd > summary svg.ic{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-right:6px}
html:not(.ui-nl) .cvp{display:flex;flex-direction:column;gap:16px}
html:not(.ui-nl) .cvf{display:flex;flex-direction:column;gap:16px;margin:0}
html:not(.ui-nl) .cvjoin{display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .cvp [data-cvfor][hidden]{display:none}
html:not(.ui-nl) .cdcard .ivhda > .ccnewd > summary{position:absolute!important;width:1px!important;min-width:0!important;max-width:1px!important;height:1px!important;min-height:0!important;overflow:hidden;clip-path:inset(50%);white-space:nowrap;padding:0!important;margin:0!important;border:0}
html:not(.ui-nl) .cvm{display:flex;align-items:center;gap:10px;min-height:44px}
html:not(.ui-nl) .cvterms > fieldset{border:0;padding:0;margin:0}
html:not(.ui-nl) .cvterms > fieldset > legend{font-weight:600;margin-bottom:6px}
html:not(.ui-nl) .cvterms .chk{min-height:44px;display:flex;align-items:center;gap:8px}
html:not(.ui-nl) .cvterms .chk + label:not(.chk){margin:0 0 6px 28px;max-width:220px}
html:not(.ui-nl) .cvh{margin:4px 0 0;font-size:var(--fs);font-weight:600}
html:not(.ui-nl) .cvlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
html:not(.ui-nl) .cvlist li{display:flex;align-items:center;gap:12px;padding:12px 0}
html:not(.ui-nl) .cvlist li + li{box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .cvck{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border-radius:999px;background:var(--ok-bg);color:var(--ok)}
html:not(.ui-nl) .cvt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
html:not(.ui-nl) .cvt small{font-size:var(--fs-sm);color:var(--muted);overflow-wrap:anywhere}
html:not(.ui-nl) .cvn{flex:none;min-width:28px;text-align:right;font-family:var(--font-display,inherit);font-size:var(--fs-lg);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .cvnote{margin:0}
/* the phone's bottom action bar holds three buttons and More: the drawer's icon goes, and "Open the client" stays in the banner */
@media(max-width:760px){ html:not(.ui-nl) .racts > details.cvd > summary svg.ic{display:none} html:not(.ui-nl) .racts > a.cdopen{display:none} }/* ===== VIS1 · the counts clients and candidates see (core/viscount.php) ===== */
html:not(.ui-nl) .vislead{margin:0 0 8px;color:var(--cl-ink2);max-width:72ch}
html:not(.ui-nl) .visform{display:flex;flex-direction:column;margin:0}
html:not(.ui-nl) .visrow{padding:20px 0;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .visrow:first-child{box-shadow:none}
html:not(.ui-nl) .visname h3{margin:0;font-size:17px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .vissample{margin:0;font-family:var(--display,inherit);color:var(--ink)}
html:not(.ui-nl) .viswhere{margin:0;color:var(--muted)}
html:not(.ui-nl) .visrow .fld.frow{margin:0}
html:not(.ui-nl) .visrow .fld p.small{margin:0;color:var(--muted)}
html:not(.ui-nl) .visswl{display:flex;align-items:center;gap:12px;min-height:44px}
html:not(.ui-nl) .visnow{font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .vismin input{max-width:140px}
html:not(.ui-nl) .visbar{padding-top:16px;box-shadow:inset 0 1px 0 var(--cl-line)}
html:not(.ui-nl) .vislegend{padding:0;margin:0 0 8px;font-size:14px;font-weight:600;color:var(--cl-ink2)}
html:not(.ui-nl) .visopts{border:0;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) label.visopt{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 12px;border-radius:14px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);cursor:pointer}
html:not(.ui-nl) label.visopt input{width:20px;height:20px;margin:2px 0 0;flex:none}
html:not(.ui-nl) label.visopt span{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) label.visopt small{color:var(--muted);font-size:14px}
html:not(.ui-nl) label.visopt:has(input:checked){background:var(--cl-ffocus);box-shadow:inset 0 0 0 1.5px var(--accent)}/* ===== PL1 · renewals (core/renewals_ui.php; canvas PLPlacement, PLRenewal, PLToday, PLSetRenewals) ===== */
html:not(.ui-nl) :where(.plcur,.plcard,.plwp,.plday,.plset,.plcred) svg.plic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) svg.plic.sm{width:13px;height:13px}
html:not(.ui-nl) :is(.plcur,.plcard){padding:24px}
html:not(.ui-nl) .plhd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:16px}
html:not(.ui-nl) .plhl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
html:not(.ui-nl) .plhl h2{margin:0;font-size:var(--fs-card);font-weight:400}
html:not(.ui-nl) .plround{font-size:14px;color:var(--muted);font-weight:500}
html:not(.ui-nl) .plhr{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
html:not(.ui-nl) .plhr>details>summary{list-style:none}html:not(.ui-nl) .plhr>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .plendf{display:grid;gap:12px;padding:6px 12px 10px;min-width:min(300px,calc(100vw - 48px))}
html:not(.ui-nl) .plendf .gfld{display:grid;gap:6px;margin:0}html:not(.ui-nl) .plendf .gfld span{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .plendb{display:flex;justify-content:flex-end}html:not(.ui-nl) .plendb .btn{width:auto;min-height:44px}
html:not(.ui-nl) .plbadge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);flex:none}
html:not(.ui-nl) .plkvs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px 28px}
html:not(.ui-nl) .plkv{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .plk{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .plv{font-size:16.5px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .plmut{color:var(--muted);font-weight:400}
html:not(.ui-nl) .plnote{margin:18px 0 0;padding-top:12px;border-top:1px solid var(--cl-line);color:var(--muted)}
html:not(.ui-nl) .plcard.plon{box-shadow:inset 0 1px 0 var(--sheen),0 0 0 3px var(--ring),var(--sh-card)}
/* the seven steps: a straight line, the dots on one baseline */
html:not(.ui-nl) .plsteps{list-style:none;margin:0;padding:0;display:flex;align-items:flex-start}
html:not(.ui-nl) .plst{position:relative;flex:1 1 0;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;min-width:0}
html:not(.ui-nl) .plst::before{content:"";position:absolute;top:14px;left:-50%;right:50%;height:2px;background:var(--cl-line2)}
html:not(.ui-nl) .plst:first-child::before{display:none}
html:not(.ui-nl) .plst.done::before,html:not(.ui-nl) .plst.now::before{background:var(--btn)}
html:not(.ui-nl) .pldot{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--soft);color:var(--muted);font:600 13px var(--display);position:relative;z-index:1}
html:not(.ui-nl) .plst.done .pldot{background:var(--ok-bg);color:var(--ok)}
html:not(.ui-nl) .plst.now .pldot{background:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn);box-shadow:0 0 0 4px var(--ring)}
html:not(.ui-nl) svg.plick{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .plsl{font-size:13.5px;font-weight:600;color:var(--muted);line-height:1.25}
html:not(.ui-nl) .plst.now .plsl{color:var(--on-accent-soft)}
html:not(.ui-nl) .plcols{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:24px;margin-top:20px;padding-top:16px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .plcol{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .plpb{margin:2px 0 0;font-size:15.5px;line-height:1.5;color:var(--ink)}
html:not(.ui-nl) .plrt{font-weight:600;font-size:17px;color:var(--ink)}
html:not(.ui-nl) .plrm{font-size:15px;color:var(--muted)}
html:not(.ui-nl) .plcolf{margin-top:auto;padding-top:12px;min-height:56px;display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .plcolf form{margin:0}
html:not(.ui-nl) .plleaf{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13.5px;font-weight:600}
html:not(.ui-nl) .pldone{margin-top:16px;font-size:16px}
html:not(.ui-nl) .plcred{display:flex;gap:12px;align-items:flex-start;margin-top:12px;padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:var(--ink)}
html:not(.ui-nl) .plcred svg.plic{color:var(--warn);margin-top:2px}
html:not(.ui-nl) .plcred>div{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
html:not(.ui-nl) .plcred .small{color:var(--cl-ink2)}
html:not(.ui-nl) .plcredf{margin:0}
/* the drawer */
html:not(.ui-nl) .plwp{display:flex;flex-direction:column;gap:20px;min-width:0}
html:not(.ui-nl) .plwlead{margin:0;font-size:17px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .plws{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .plws:first-of-type{border-top:0;padding-top:0}
html:not(.ui-nl) .plwsh{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .plwsh h3{margin:0;font-size:16px;font-weight:600}
html:not(.ui-nl) .plwhy{margin:0;color:var(--muted)}
html:not(.ui-nl) .plpbl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:0}
html:not(.ui-nl) .plpbl dt{font-size:13.5px;font-weight:600;color:var(--muted)}html:not(.ui-nl) .plpbl dd{margin:2px 0 0;font-size:15px;color:var(--ink)}
html:not(.ui-nl) .plopts{border:0;margin:0;padding:0;display:grid;gap:8px}
html:not(.ui-nl) .plopts.four{grid-template-columns:repeat(2,minmax(0,1fr))}html:not(.ui-nl) .plopts.three{grid-template-columns:repeat(3,minmax(0,1fr))}html:not(.ui-nl) .plopts.two{grid-template-columns:repeat(2,minmax(0,1fr))}
html:not(.ui-nl) .plopt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);cursor:pointer;min-width:0;min-height:44px;box-sizing:border-box}
html:not(.ui-nl) .plopt:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--btn)}
html:not(.ui-nl) .plopt input{margin-top:3px;flex:none}
html:not(.ui-nl) .plopt span{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .plopt b{font-size:15px;font-weight:600;color:var(--ink)}html:not(.ui-nl) .plopt small{font-size:13px;color:var(--muted)}
html:not(.ui-nl) .plweeks .plchips{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
html:not(.ui-nl) .plnum{display:flex;align-items:center;gap:8px}html:not(.ui-nl) .plnum input{width:84px}html:not(.ui-nl) .plnum span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .plhint{display:block;margin-top:4px;font-size:13px;color:var(--muted)}
html:not(.ui-nl) .plrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
html:not(.ui-nl) .plinl{display:inline;margin:0}
html:not(.ui-nl) .plwfoot{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px}
html:not(.ui-nl) .plwfoot p{margin:0;color:var(--muted);flex:1 1 260px}
html:not(.ui-nl) .plext[hidden]{display:none}
/* Today */
html:not(.ui-nl) .pltl{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .pltr{display:flex;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pltr:first-child{border-top:0}
html:not(.ui-nl) .plav{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);font:600 13px var(--display);flex:none}
html:not(.ui-nl) .pltrt{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}
html:not(.ui-nl) .pltrt b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}html:not(.ui-nl) .pltrt .small{color:var(--muted)}
html:not(.ui-nl) .pltra{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
html:not(.ui-nl) .plnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
html:not(.ui-nl) .plnums div{display:flex;flex-direction:column;gap:2px}html:not(.ui-nl) .plnums b{font:400 30px/1.1 var(--display)}html:not(.ui-nl) .plnums span{font-size:14px;color:var(--muted)}
/* Settings */
html:not(.ui-nl) .plset .fg{margin-top:8px}
html:not(.ui-nl) .plsws{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
html:not(.ui-nl) .plsws.four{grid-template-columns:repeat(4,minmax(0,1fr));margin-top:8px}
html:not(.ui-nl) .plsw{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:12px;background:var(--soft);cursor:pointer}
html:not(.ui-nl) .plsw.off{cursor:default;opacity:.75}
html:not(.ui-nl) .plswt{display:flex;flex-direction:column;gap:2px;min-width:0}html:not(.ui-nl) .plswt b{font-size:15px;font-weight:600}html:not(.ui-nl) .plswt small{font-size:13px;color:var(--muted)}
html:not(.ui-nl) .plh3{margin:24px 0 0;font-size:16px;font-weight:600}
html:not(.ui-nl) .plmaill{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .plmaill li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--cl-line);flex-wrap:wrap}
html:not(.ui-nl) .plmaill li:first-child{border-top:0}
html:not(.ui-nl) .plmaill li>div{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 240px}
html:not(.ui-nl) .plprev>summary{list-style:none}html:not(.ui-nl) .plprev>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .plprevp{margin-top:8px;flex-basis:100%}
html:not(.ui-nl) .plpre{white-space:pre-wrap;font:14px/1.55 var(--font);background:var(--soft);padding:12px;border-radius:10px;margin:8px 0;max-width:640px}
html:not(.ui-nl) .plpbp{display:flex;flex-direction:column;gap:12px}
html:not(.ui-nl) .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media(max-width:820px){
  html:not(.ui-nl) .plkvs{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  html:not(.ui-nl) .plcols{grid-template-columns:1fr;gap:16px}
  html:not(.ui-nl) .plcolf{min-height:0}
  html:not(.ui-nl) .plsteps{overflow-x:auto;scrollbar-width:none;padding-bottom:4px}html:not(.ui-nl) .plsteps::-webkit-scrollbar{display:none}
  html:not(.ui-nl) .plst{min-width:72px}
  html:not(.ui-nl) .plopts.three,html:not(.ui-nl) .plopts.four,html:not(.ui-nl) .plopts.two{grid-template-columns:1fr}
  html:not(.ui-nl) .plsws,html:not(.ui-nl) .plsws.four{grid-template-columns:1fr}
  html:not(.ui-nl) .plnums{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .pltr{flex-wrap:wrap}html:not(.ui-nl) .pltra{flex-direction:row;align-items:center;width:100%;padding-left:48px}
  html:not(.ui-nl) :is(.plcur,.plcard){padding:18px}
}/* ===== PL2 · credit, the warning and hand-off, candidates by recruiter, achievements (core/credit_ui.php; canvas rows 34 to 36) ===== */
html:not(.ui-nl) svg.pl2ic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) svg.pl2ic.sm{width:14px;height:14px}
html:not(.ui-nl) .pl2mut{color:var(--muted)}
html:not(.ui-nl) .pl2leaf{display:inline-flex;align-items:center;gap:6px;min-height:26px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13.5px;font-weight:600}
html:not(.ui-nl) .pl2inl{display:inline;margin:0}
/* the warning (PLWarning) */
html:not(.ui-nl) .pl2warn{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--warn-bg);color:var(--ink);margin:6px 0}
html:not(.ui-nl) .pl2warn.soft{background:var(--soft);padding:12px 14px}
html:not(.ui-nl) .pl2wi{width:36px;height:36px;border-radius:50%;background:rgba(201,138,0,.16);color:var(--warn);display:grid;place-items:center;flex:none}
html:not(.ui-nl) .pl2warn.soft .pl2wi{width:30px;height:30px;background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .pl2wt{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
html:not(.ui-nl) .pl2wl{margin:0;font-size:16px;line-height:1.45}
html:not(.ui-nl) .pl2wt>.small{margin:0}
html:not(.ui-nl) .pl2wa{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}
html:not(.ui-nl) .pl2wa>details>summary{list-style:none}html:not(.ui-nl) .pl2wa>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) tr.pl2wrow>td{padding-top:0;border-top:0}
html:not(.ui-nl) .btn.pl2dim{opacity:.55}
/* the drop-down: Ask an administrator */
html:not(.ui-nl) .pl2rqf,html:not(.ui-nl) .pl2credf,html:not(.ui-nl) .pl2xff{display:grid;gap:12px;padding:6px 12px 10px;min-width:min(360px,calc(100vw - 48px))}
html:not(.ui-nl) .pl2rqh{margin:0;font-size:16px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .pl2rqf p,html:not(.ui-nl) .pl2credf p{margin:0}
html:not(.ui-nl) :is(.pl2rqf,.pl2credf,.pl2xff,.pl2decl) .gfld{display:grid;gap:6px;margin:0}
html:not(.ui-nl) :is(.pl2rqf,.pl2credf,.pl2xff,.pl2decl) .gfld>span{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .pl2rqf textarea{min-height:84px}
html:not(.ui-nl) .pl2rqb{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
html:not(.ui-nl) .pl2rqb .btn{width:auto;min-height:44px}
html:not(.ui-nl) .pl2held{margin:14px 0 4px;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pl2held h3{margin:0 0 4px;font-size:16px;font-weight:600}
/* the record's strip (PLMariaNotice) */
html:not(.ui-nl) .pl2strip{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:14px;background:var(--ok-bg);color:var(--ink);margin:0 0 14px;flex-wrap:wrap}
html:not(.ui-nl) .pl2strip.info{background:var(--accent-soft)}
html:not(.ui-nl) .pl2strip>svg.pl2ic{color:var(--ok)}html:not(.ui-nl) .pl2strip.info>svg.pl2ic{color:var(--on-accent-soft)}
html:not(.ui-nl) .pl2strip>div{display:flex;flex-direction:column;gap:2px;flex:1 1 300px;min-width:0}
html:not(.ui-nl) .pl2strip .small{color:var(--cl-ink2)}
/* Who gets the credit */
html:not(.ui-nl) .pl2cred{padding:24px}
html:not(.ui-nl) .pl2whos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
html:not(.ui-nl) .pl2who{display:flex;gap:12px;align-items:flex-start;min-width:0}
html:not(.ui-nl) .pl2who>div{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .pl2who b{font-size:16.5px;font-weight:600;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .pl2k{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .pl2av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);font:600 13px var(--display);flex:none}
html:not(.ui-nl) .pl2av.lg{width:48px;height:48px;font-size:16px}
html:not(.ui-nl) .pl2split{margin-top:20px;padding-top:16px;border-top:1px solid var(--cl-line);display:flex;flex-direction:column;gap:10px}
html:not(.ui-nl) .pl2bars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
html:not(.ui-nl) .pl2sb{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:12px;background:var(--soft)}
html:not(.ui-nl) .pl2sb b{font:400 26px/1.1 var(--display);color:var(--ink)}html:not(.ui-nl) .pl2sb span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .pl2split p{margin:0}
html:not(.ui-nl) .pl2spl{border:0;margin:0;padding:0;display:grid;gap:8px}html:not(.ui-nl) .pl2spl legend{font-size:14px;font-weight:600;color:var(--muted);margin-bottom:6px}
html:not(.ui-nl) .pl2pcts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
/* Permission requests (PLAdminRequest) */
html:not(.ui-nl) .pl2tabs{margin:0 0 18px}
html:not(.ui-nl) .pl2tabs .ct{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-size:13px;margin-left:4px}
html:not(.ui-nl) .pl2req{padding:24px;display:flex;flex-direction:column;gap:14px}
html:not(.ui-nl) .pl2reqh{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
html:not(.ui-nl) .pl2reqt{flex:1;min-width:0}html:not(.ui-nl) .pl2reqt h2{margin:0;font-size:var(--fs-card);font-weight:400}html:not(.ui-nl) .pl2reqt p{margin:2px 0 0}
html:not(.ui-nl) .pl2kv{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;margin:0}
html:not(.ui-nl) .pl2kv dt{font-size:14px;font-weight:600;color:var(--muted)}html:not(.ui-nl) .pl2kv dd{margin:2px 0 0;font-size:15.5px;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .pl2kv .wide{grid-column:1/-1}
html:not(.ui-nl) .pl2reqa{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
html:not(.ui-nl) .pl2reqa>details>summary{list-style:none}html:not(.ui-nl) .pl2reqa>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .pl2dech{flex:1 1 360px;margin:0}
html:not(.ui-nl) .pl2decp{display:flex;flex-direction:column;gap:6px;padding:6px;min-width:min(340px,calc(100vw - 48px))}
html:not(.ui-nl) .pl2decp form{margin:0}
html:not(.ui-nl) button.pl2opt{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:52px;padding:10px 12px;border:0;border-radius:10px;background:transparent;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
html:not(.ui-nl) button.pl2opt:hover,html:not(.ui-nl) button.pl2opt:focus-visible{background:var(--soft)}
html:not(.ui-nl) button.pl2opt b{font-weight:600;font-size:15px}html:not(.ui-nl) button.pl2opt small{font-size:13px;color:var(--muted)}
html:not(.ui-nl) dialog.gsheet .gsrc>.pl2decp>form>button.pl2opt{flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:52px}
html:not(.ui-nl) dialog.gsheet .gsrc>.pl2recp>a.pl2reca{justify-content:space-between}
html:not(.ui-nl) dialog.gsheet.gdrop .gsrc>.pl2recp>a.pl2reca.on{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .pl2decl{display:grid;gap:8px;padding:8px 12px 6px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pl2decided{margin:0;font-size:15.5px}
html:not(.ui-nl) .pl2empty p{margin:0 0 6px}
/* Candidates by recruiter (PLByRecruiter) and the transfer (PLTransfer, PLTransferDone) */
html:not(.ui-nl) .pl2recd>summary{list-style:none}html:not(.ui-nl) .pl2recd>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .pl2recp{display:flex;flex-direction:column;gap:2px;padding:6px;min-width:min(300px,calc(100vw - 48px))}
html:not(.ui-nl) .pl2recp .pl2rqh{padding:6px 10px 4px;font-size:14px;color:var(--muted)}
html:not(.ui-nl) a.pl2reca{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:40px;padding:6px 10px;border-radius:10px;color:var(--ink);text-decoration:none}
html:not(.ui-nl) a.pl2reca:hover{background:var(--soft);text-decoration:none}
html:not(.ui-nl) a.pl2reca.on{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) a.pl2reca b{font-weight:600;font-variant-numeric:tabular-nums}
html:not(.ui-nl) .pl2left{color:var(--warn);font-weight:600}
html:not(.ui-nl) th.pl2tick{width:36px}
html:not(.ui-nl) .pl2xfp{display:flex;flex-direction:column;gap:16px;min-width:0}
html:not(.ui-nl) .pl2xfh{margin:0;font-size:18px;font-weight:600}
html:not(.ui-nl) .pl2fs{border:0;margin:0;padding:0;display:grid;gap:8px}html:not(.ui-nl) .pl2fs legend{font-size:14px;font-weight:600;color:var(--muted);margin-bottom:6px}
html:not(.ui-nl) .pl2fs[hidden],html:not(.ui-nl) .pl2xff [hidden]{display:none}
html:not(.ui-nl) .pl2chips{display:flex;flex-wrap:wrap;gap:8px}
html:not(.ui-nl) .pl2chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border-radius:999px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);cursor:pointer}
html:not(.ui-nl) .pl2chip:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--btn)}
html:not(.ui-nl) .pl2tos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
html:not(.ui-nl) .pl2to,html:not(.ui-nl) .pl2tell{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);cursor:pointer;min-height:44px;box-sizing:border-box}
html:not(.ui-nl) .pl2to:has(input:checked),html:not(.ui-nl) .pl2tell:has(input:checked){background:var(--accent-soft);box-shadow:inset 0 0 0 1px var(--btn)}
html:not(.ui-nl) :is(.pl2to,.pl2tell)>span{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) :is(.pl2to,.pl2tell) small{font-size:13px;color:var(--muted)}
html:not(.ui-nl) .pl2pvs{padding:14px 16px;border-radius:14px;background:var(--soft);display:flex;flex-direction:column;gap:10px}
html:not(.ui-nl) .pl2pvs h4,html:not(.ui-nl) .pl2recent h4{margin:0;font-size:15px;font-weight:600}
html:not(.ui-nl) .pl2pv{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html:not(.ui-nl) .pl2pv>div{display:flex;flex-direction:column;gap:2px}
html:not(.ui-nl) .pl2pv b{font:400 26px/1.1 var(--display);color:var(--ink)}html:not(.ui-nl) .pl2pv span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .pl2pvs p{margin:0}
html:not(.ui-nl) .pl2recent ul{list-style:none;margin:8px 0 0;padding:0}
html:not(.ui-nl) .pl2recent li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--cl-line);flex-wrap:wrap}
html:not(.ui-nl) .pl2recent li>span{display:flex;flex-direction:column;gap:2px}html:not(.ui-nl) .pl2recent small{color:var(--muted)}
html:not(.ui-nl) .pl2done{display:flex;gap:12px;align-items:center;padding:14px 16px;border-radius:14px;background:var(--ok-bg);color:var(--ink);margin:0 0 14px;flex-wrap:wrap}
html:not(.ui-nl) .pl2done>svg.pl2ic{color:var(--ok)}
html:not(.ui-nl) .pl2done>div{display:flex;flex-direction:column;gap:2px;flex:1 1 280px;min-width:0}
/* Settings, Team (PLTeamOff) */
html:not(.ui-nl) td.pl2num,html:not(.ui-nl) th.pl2num{text-align:right;font-variant-numeric:tabular-nums}
html:not(.ui-nl) .pl2off>summary{list-style:none}html:not(.ui-nl) .pl2off>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .pl2offp{display:flex;flex-direction:column;gap:8px;padding:10px 12px;max-width:380px;white-space:normal;text-align:left}
html:not(.ui-nl) .pl2offp p{margin:0}
html:not(.ui-nl) .pl2offb{display:flex;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .pl2offf{display:flex;flex-direction:column;gap:8px;margin:0}html:not(.ui-nl) .pl2agl{display:flex;flex-direction:column;gap:4px}html:not(.ui-nl) .pl2agl select{min-height:44px;max-width:100%}
html:not(.ui-nl) .pl2deskf{margin:6px 0 0;text-align:left}html:not(.ui-nl) .pl2deskf select{min-height:32px;width:auto}
html:not(.ui-nl) .pl2teamnote{margin:12px 0 0}
html:not(.ui-nl) td.pl2work{min-width:150px;max-width:220px;line-height:1.5}
/* Achievements (PLAchievements, PLAchievementsDir) */
html:not(.ui-nl) form.pl2bar{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:flex-end;margin:0 0 18px}
html:not(.ui-nl) .pl2fb{display:flex;flex-direction:column;gap:4px;min-width:150px}html:not(.ui-nl) .pl2fb>span{font-size:13.5px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .pl2tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(112px,1fr));gap:12px;margin:0 0 20px}
html:not(.ui-nl) .pl2tile{display:flex;flex-direction:column;gap:2px;padding:16px;border-radius:16px;background:var(--card);box-shadow:var(--sh-card)}
html:not(.ui-nl) .pl2tile b{font:400 32px/1.1 var(--display);color:var(--ink)}html:not(.ui-nl) .pl2tile span{font-size:15px;font-weight:600;color:var(--ink)}html:not(.ui-nl) .pl2tile small{font-size:13px;color:var(--muted)}
html:not(.ui-nl) .pl2sec{margin-bottom:18px}
html:not(.ui-nl) .pl2seg a{white-space:nowrap}
html:not(.ui-nl) .pl2two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
html:not(.ui-nl) .pl2mon{display:flex;align-items:flex-end;gap:14px;min-height:120px;padding-top:8px}
html:not(.ui-nl) .pl2mon>div{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1 1 0;min-width:28px}
html:not(.ui-nl) .pl2mon i{display:block;width:100%;max-width:44px;border-radius:8px 8px 4px 4px;background:var(--btn)}
html:not(.ui-nl) .pl2mon i.h1{height:8px}html:not(.ui-nl) .pl2mon i.h2{height:16px}html:not(.ui-nl) .pl2mon i.h3{height:24px}html:not(.ui-nl) .pl2mon i.h4{height:32px}html:not(.ui-nl) .pl2mon i.h5{height:40px}html:not(.ui-nl) .pl2mon i.h6{height:48px}html:not(.ui-nl) .pl2mon i.h7{height:56px}html:not(.ui-nl) .pl2mon i.h8{height:64px}html:not(.ui-nl) .pl2mon i.h9{height:72px}html:not(.ui-nl) .pl2mon i.h10{height:80px}
html:not(.ui-nl) .pl2mon b{font-weight:600}html:not(.ui-nl) .pl2mon span{font-size:13px;color:var(--muted)}
html:not(.ui-nl) .pl2cli{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .pl2cli li{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pl2cli li:first-child{border-top:0}
html:not(.ui-nl) .pl2foot{margin:6px 0 0}
html:not(.ui-nl) .pl2tb{display:block;max-width:100%}
html:not(.ui-nl) .pl2tb .plsw{background:transparent;padding:0;align-items:center;max-width:100%;box-sizing:border-box}
html:not(.ui-nl) .pl2tb .plswt{flex:1 1 auto;min-width:0}
@media(max-width:820px){
  html:not(.ui-nl) .pl2whos,html:not(.ui-nl) .pl2bars,html:not(.ui-nl) .pl2kv,html:not(.ui-nl) .pl2pcts,html:not(.ui-nl) .pl2tos,html:not(.ui-nl) .pl2pv,html:not(.ui-nl) .pl2two{grid-template-columns:1fr}
  html:not(.ui-nl) .pl2cred,html:not(.ui-nl) .pl2req{padding:18px}
  html:not(.ui-nl) .pl2warn{padding:14px}
  html:not(.ui-nl) .pl2fb{flex:1 1 140px}
  html:not(.ui-nl) .pl2sec .chead .cright:has(.pl2tb){flex-basis:100%;max-width:100%}
  html:not(.ui-nl) .pl2sec .chead{flex-wrap:wrap;gap:10px}
  html:not(.ui-nl) .pl2seg{max-width:100%;flex-wrap:wrap}
  html:not(.ui-nl) .pl2tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .pl2rqb .btn,html:not(.ui-nl) .pl2offb .btn,html:not(.ui-nl) .pl2wa .btn{min-height:44px}
  html:not(.ui-nl) button.pl2opt{min-height:56px}
}/* ===== PL3 · recruiter bonuses (core/bonus_ui.php; canvas row 36) ===== */
html:not(.ui-nl) .pl3top .chead h2{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .pl3badge{width:40px;height:40px}
html:not(.ui-nl) .pl3lead{margin:0 0 16px;font-size:16.5px;line-height:1.5;color:var(--cl-ink2)}
html:not(.ui-nl) .pl3legal,html:not(.ui-nl) .pl3off{display:flex;gap:14px;align-items:flex-start;padding:16px 18px;border-radius:16px;background:var(--warn-bg);color:var(--ink);margin:0 0 16px}
html:not(.ui-nl) .pl3legal>svg,html:not(.ui-nl) .pl3off>svg{width:36px;height:36px;padding:8px;border-radius:50%;background:rgba(201,138,0,.16);color:var(--warn);flex:none;box-sizing:border-box}
html:not(.ui-nl) .pl3legal p,html:not(.ui-nl) .pl3off p{margin:0;line-height:1.5}
html:not(.ui-nl) .pl3master{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;padding-top:16px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pl3master p{margin:0;flex:1 1 320px}
html:not(.ui-nl) .pl3plan{display:flex;gap:10px;align-items:flex-start;flex:1 1 320px;cursor:pointer;font-size:15.5px}
html:not(.ui-nl) .pl3plan input{width:20px;height:20px;margin-top:2px;flex:none}
html:not(.ui-nl) .pl3rules,html:not(.ui-nl) .pl3form,html:not(.ui-nl) .pl3overs,html:not(.ui-nl) .pl3top,html:not(.ui-nl) .pl3lines,html:not(.ui-nl) .pl3nums{margin-bottom:18px}
html:not(.ui-nl) .pl3rt tr.pl3on>td{background:var(--accent-soft)}
html:not(.ui-nl) .pl3rn{display:inline;font-weight:600;font-size:16.5px;line-height:1.4}
html:not(.ui-nl) .pl3sub{display:block;margin-top:2px}
html:not(.ui-nl) .pl3pays{font-size:15px;line-height:1.45;color:var(--cl-ink2);max-width:300px}
html:not(.ui-nl) .pl3pill{white-space:nowrap;display:inline-flex;align-items:center;min-height:30px;padding:3px 12px;border-radius:999px;background:var(--soft);font-size:14px;font-weight:600;color:var(--cl-ink2);line-height:1.3}
html:not(.ui-nl) td.pl3acts{white-space:nowrap;text-align:right}
html:not(.ui-nl) .pl3acts{display:flex;gap:8px;align-items:center;justify-content:flex-end}
html:not(.ui-nl) td.pl3acts>*{vertical-align:middle}
html:not(.ui-nl) .pl3acts>details>summary,html:not(.ui-nl) .pl3od>summary{list-style:none}html:not(.ui-nl) .pl3acts>details>summary::-webkit-details-marker,html:not(.ui-nl) .pl3od>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .pl3dots{min-width:44px;letter-spacing:1px}
html:not(.ui-nl) .pl3ddb svg.pl3chev{width:16px;height:16px;margin-left:6px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none}
html:not(.ui-nl) button.pl2opt.pl3danger b{color:var(--bad)}
html:not(.ui-nl) .pl3prec{margin:14px 0 0}
html:not(.ui-nl) .pl3form .chead h2{font-size:22px}
html:not(.ui-nl) .pl3cur{display:flex;align-items:center;gap:6px}html:not(.ui-nl) .pl3cur>i{font-style:normal;color:var(--muted)}html:not(.ui-nl) .pl3cur input{flex:1;min-width:0}
html:not(.ui-nl) .pl3two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:20px;padding-top:20px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .pl3fs{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}
html:not(.ui-nl) .pl3fs legend{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:8px}
html:not(.ui-nl) .pl3who{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
html:not(.ui-nl) .pl3who>input{width:20px;height:20px;margin-top:2px;flex:none}
html:not(.ui-nl) .pl3who>span{display:flex;flex-direction:column;gap:3px;min-width:0}
html:not(.ui-nl) .pl3who b{font-size:16px;font-weight:500;color:var(--ink)}html:not(.ui-nl) .pl3who small{font-size:13.5px;color:var(--muted);line-height:1.45}
html:not(.ui-nl) .pl3dn input{width:84px}
html:not(.ui-nl) .pl3side{display:flex;flex-direction:column;gap:14px;min-width:0}
html:not(.ui-nl) .pl3bar{height:10px;border-radius:999px;background:var(--soft);overflow:hidden}
html:not(.ui-nl) .pl3bar i{display:block;height:100%;border-radius:999px;background:var(--btn)}
html:not(.ui-nl) .pl3bar i.p0{width:0}html:not(.ui-nl) .pl3bar i.p1{width:10%}html:not(.ui-nl) .pl3bar i.p2{width:20%}html:not(.ui-nl) .pl3bar i.p3{width:30%}html:not(.ui-nl) .pl3bar i.p4{width:40%}html:not(.ui-nl) .pl3bar i.p5{width:50%}html:not(.ui-nl) .pl3bar i.p6{width:60%}html:not(.ui-nl) .pl3bar i.p7{width:70%}html:not(.ui-nl) .pl3bar i.p8{width:80%}html:not(.ui-nl) .pl3bar i.p9{width:90%}html:not(.ui-nl) .pl3bar i.p10{width:100%}
html:not(.ui-nl) .pl3pct input{width:72px}
html:not(.ui-nl) .fg>.pl3claw{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;align-items:end}html:not(.ui-nl) .pl3cd .plnum span{white-space:nowrap}html:not(.ui-nl) .pl3claw>.plsw{min-width:0}html:not(.ui-nl) .pl3cd{display:grid;gap:6px;margin:0;justify-items:start;text-align:left}html:not(.ui-nl) .pl3cd>span:first-child{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .pl3ol{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .pl3ol li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--cl-line);flex-wrap:wrap}
html:not(.ui-nl) .pl3ol li:first-child{border-top:0}
html:not(.ui-nl) .pl3ol li>div:first-child{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 280px}
html:not(.ui-nl) .pl3odp{display:flex;flex-direction:column;gap:14px;min-width:0}
html:not(.ui-nl) .pl3odf{display:grid;gap:14px;padding:6px 12px 10px;min-width:min(420px,calc(100vw - 48px))}
html:not(.ui-nl) .pl3odf .fg{gap:14px}
html:not(.ui-nl) :is(.pl3form,.pl3odf) [hidden]{display:none!important}
html:not(.ui-nl) .pl3form .pl2pcts,html:not(.ui-nl) .pl3odf .pl2pcts{align-items:end}
html:not(.ui-nl) .pl3rt tr.pl3on>td.tr-act{background:var(--accent-soft)}
html:not(.ui-nl) .pl3odf .gfld{display:grid;gap:6px;margin:0}html:not(.ui-nl) .pl3odf .gfld>span{font-size:14px;font-weight:600;color:var(--muted)}
/* the ledger and My bonuses */
html:not(.ui-nl) .pl3tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;padding:6px;border-radius:999px;background:var(--card);box-shadow:var(--sh-card);margin:0 0 18px}
html:not(.ui-nl) .pl3tabs a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 10px;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:500;white-space:nowrap}
html:not(.ui-nl) .pl3tabs a:hover{background:var(--soft);text-decoration:none}
html:not(.ui-nl) .pl3tabs a.on{background:var(--btn);color:var(--on-btn)}
html:not(.ui-nl) .pl3tabs .ct{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-size:13px}
html:not(.ui-nl) .pl3tabs a.on .ct{background:rgba(255,255,255,.22);color:var(--on-btn)}
html:not(.ui-nl) .pl3nums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;padding:22px 24px}
html:not(.ui-nl) .pl3nums.five{grid-template-columns:repeat(5,minmax(0,1fr))}
html:not(.ui-nl) .pl3nums>div{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .pl3nums b{font:400 30px/1.1 var(--display);color:var(--ink);font-variant-numeric:tabular-nums}
html:not(.ui-nl) .pl3nums>div.hi b{color:var(--btn)}
html:not(.ui-nl) .pl3nums span{font-size:15px;font-weight:600;color:var(--ink)}html:not(.ui-nl) .pl3nums small{font-size:13.5px;color:var(--muted);line-height:1.4}
html:not(.ui-nl) .pl3fil{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0}
html:not(.ui-nl) .pl3fil select{width:auto;min-height:40px;border-radius:999px}
html:not(.ui-nl) .pl3pw{font-weight:600;line-height:1.4}
html:not(.ui-nl) .pl3tag{display:inline-flex;align-items:center;min-height:24px;padding:1px 9px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13px;font-weight:600;white-space:nowrap;vertical-align:middle}
html:not(.ui-nl) .pl3tag.warn{background:var(--warn-bg);color:var(--warn)}
html:not(.ui-nl) td.pl3amt{font-weight:600;font-size:16.5px}
html:not(.ui-nl) td.pl3mom{min-width:170px;max-width:260px;line-height:1.45}
html:not(.ui-nl) .pl3lt td .chip{white-space:nowrap}
html:not(.ui-nl) .pl3hist{margin:0;padding:8px 12px;max-width:340px;white-space:normal;line-height:1.45}
html:not(.ui-nl) .pl3foot{margin:14px 0 0}
html:not(.ui-nl) .pl3cl{margin-top:16px;padding-top:14px;border-top:1px solid var(--cl-line);display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .pl3cl ul{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .pl3cl li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;flex-wrap:wrap}
@media(max-width:820px){
  html:not(.ui-nl) .pl3two,html:not(.ui-nl) .fg>.pl3claw{grid-template-columns:1fr}
  html:not(.ui-nl) .pl3pill{white-space:normal}
  html:not(.ui-nl) .pl3tabs{grid-template-columns:repeat(3,minmax(0,1fr));border-radius:20px}
  html:not(.ui-nl) .pl3nums,html:not(.ui-nl) .pl3nums.five{grid-template-columns:repeat(2,minmax(0,1fr));padding:18px}
  html:not(.ui-nl) .pl3nums b{font-size:26px}
  html:not(.ui-nl) .pl3lines .chead{flex-wrap:wrap;gap:10px}
  html:not(.ui-nl) .pl3lines .chead .cright{flex-basis:100%;max-width:100%}
  html:not(.ui-nl) td.pl3acts{text-align:left}
  html:not(.ui-nl) .pl3acts{justify-content:flex-start}
  html:not(.ui-nl) td.pl3mom{max-width:none}
  html:not(.ui-nl) .pl3master .btn{width:100%}
  html:not(.ui-nl) .pl3top .chead .cright .btn{width:100%}
}/* ===== OB1 · orientation (core/orient_ui.php; canvas rows 46 to 49) ===== */
html:not(.ui-nl) :where(.obcard,.obclient,.obday,.obpage,.obdp,.obset,.obcp,.loccard,.gmenu,.rmorep) svg.obic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .garow svg.obic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .btn svg.obic{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;margin-right:6px;vertical-align:-3px}
html:not(.ui-nl) :is(.obcard,.obclient){padding:24px}
html:not(.ui-nl) .obhd{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
html:not(.ui-nl) .obhl{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
html:not(.ui-nl) .obhl h2{margin:0;font-size:var(--fs-card);font-weight:400}
html:not(.ui-nl) .obhl h3{margin:0;font-size:18px;font-weight:600}
html:not(.ui-nl) .obhl p{margin:2px 0 0}
html:not(.ui-nl) .obhr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .obhr>details>summary{list-style:none}html:not(.ui-nl) .obhr>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obbadge{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);flex:none}
html:not(.ui-nl) .obmut{color:var(--muted);font-weight:400}
html:not(.ui-nl) .obok{color:var(--ok)}
html:not(.ui-nl) .obinl{display:inline;margin:0}
html:not(.ui-nl) .obpad{padding:8px 16px;margin:0}
html:not(.ui-nl) .obtag{display:inline-flex;align-items:center;min-height:26px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13.5px;font-weight:600}
html:not(.ui-nl) .obprog{padding:18px 0 4px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obkvs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 28px}
html:not(.ui-nl) .obkv{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .obk1{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obv{font-size:16px;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .obsec{margin-top:20px;padding-top:16px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obsec h3{margin:0 0 6px;font-size:16px;font-weight:600}
html:not(.ui-nl) .obempty{padding:14px 16px;border-radius:14px;background:var(--soft);margin:8px 0}
html:not(.ui-nl) .obempty p{margin:0}html:not(.ui-nl) .obempty p+p{margin-top:4px}
html:not(.ui-nl) .obquiet{margin:16px 0 0;padding:10px 14px;border-radius:12px;background:var(--soft);color:var(--cl-ink2)}
html:not(.ui-nl) .obdirectf{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 0}
html:not(.ui-nl) .obdirectf select{min-height:36px;border:1px solid var(--line);border-radius:10px;padding:0 8px;font:inherit}
html:not(.ui-nl) .obwarn{margin:12px 0 0;padding:10px 14px;border-radius:12px;background:var(--warn-bg);color:var(--ink)}
html:not(.ui-nl) .obship{margin:8px 0 0;padding:10px 14px;border-radius:12px;background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .obnote{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--cl-line);color:var(--muted)}
html:not(.ui-nl) .obprogl{margin:0 0 6px;color:var(--cl-ink2)}
/* the rows: a date tile, the words, the status and its drop-down */
html:not(.ui-nl) .oblist{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .obrow{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--cl-line);flex-wrap:wrap}   /* OB1.2 · wraps when narrow (a placement's card at 1024 pushed its buttons 6px off the page) */
html:not(.ui-nl) .oblist>.obrow:first-child{border-top:0}
html:not(.ui-nl) .obrt{display:flex;flex-direction:column;gap:3px;flex:1 1 240px;min-width:0}
html:not(.ui-nl) .obrt b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .obline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .obra{display:flex;align-items:center;gap:8px;flex:0 1 auto;max-width:100%;flex-wrap:wrap;justify-content:flex-end;margin-left:auto}
html:not(.ui-nl) .obra>details>summary{list-style:none}html:not(.ui-nl) .obra>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obtile{width:52px;min-height:58px;border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--soft);color:var(--cl-ink2);flex:none;line-height:1.1}
html:not(.ui-nl) .obtile b{font:400 22px/1.1 var(--display);color:var(--ink)}
html:not(.ui-nl) .obtile small{font-size:var(--fs-2xs,12px);font-weight:600;letter-spacing:.04em}
html:not(.ui-nl) .obtile.ok{background:var(--ok-bg);color:var(--ok)}html:not(.ui-nl) .obtile.ok b{color:var(--ok)}
html:not(.ui-nl) .obtile.bad{background:var(--bad-bg);color:var(--bad)}html:not(.ui-nl) .obtile.bad b{color:var(--bad)}
html:not(.ui-nl) .obtile.warn{background:var(--warn-bg)}
html:not(.ui-nl) .obtile.solid{background:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn)}html:not(.ui-nl) .obtile.solid b,html:not(.ui-nl) .obtile.solid small{color:var(--on-btn)}
html:not(.ui-nl) .obk{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}
html:not(.ui-nl) .obk-shift{background:var(--soft);color:var(--cl-ink2)}
html:not(.ui-nl) .obk-class{background:var(--info-bg);color:var(--info)}
html:not(.ui-nl) .obk-ride{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .obk-prec{background:var(--soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .obdone .obrt b{color:var(--cl-ink2)}
html:not(.ui-nl) .obseats{display:flex;align-items:center;gap:10px}
html:not(.ui-nl) .obseatbar{display:block;width:120px;height:6px;border:0;border-radius:99px;background:var(--cl-line2);overflow:hidden;-webkit-appearance:none;appearance:none}
html:not(.ui-nl) .obseatbar::-webkit-progress-bar{background:var(--cl-line2);border-radius:99px}html:not(.ui-nl) .obseatbar::-webkit-progress-value{background:var(--btn);border-radius:99px}html:not(.ui-nl) .obseatbar::-moz-progress-bar{background:var(--btn);border-radius:99px}
html:not(.ui-nl) .obaddrow{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:10px 14px;flex-wrap:wrap;margin:0}   /* OB1.2 · a field rule made it a centered column (§261.3) */html:not(.ui-nl) .oblocnew{font-weight:600}
html:not(.ui-nl) .obmt6{margin-top:6px}
html:not(.ui-nl) .obfirst{display:flex;align-items:center;gap:14px;margin-top:12px;padding:12px 14px;border-radius:14px;background:var(--soft)}
/* the drawers */
html:not(.ui-nl) .obdp{display:flex;flex-direction:column;gap:14px;min-width:0}
html:not(.ui-nl) .obform{gap:14px}
html:not(.ui-nl) .obleg{font-size:14px;font-weight:600;color:var(--muted);padding:0;margin-bottom:6px}
html:not(.ui-nl) .obfoot{display:flex;justify-content:flex-end}
html:not(.ui-nl) .obdate{padding-top:10px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obdn{margin:0;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obmore[hidden]{display:none}
/* OB1.1 · the New class drawer (HANDOFF §259): the date blocks span the whole form (they sat in ONE of its four columns, so the date,
   the two times and the place were crushed to 7 to 33px on a computer); inside a drawer (the panel is a container) the form and each
   date block use two columns: the date full width, the two times side by side, the place full width; seats and contact side by side,
   the note full. A phone's drawer (under 340px inside) keeps one column. (No field words in these comments: some pages print these
   rules inline and a suite reads their text.) */
html:not(.ui-nl) .obdp{container:obdp/inline-size}
html:not(.ui-nl) .obform>:is(.obdate,.obmore){grid-column:1/-1}
html:not(.ui-nl) .obdate[hidden]{display:none}   /* OB1.1 · one press showed BOTH extra dates (.fg's display:grid beat [hidden]) */
html:not(.ui-nl) .obaddrow [data-obadd][hidden]{display:none}   /* OB1.1 · after the third date the button hides (.btn's display kept it showing) */
@container obdp (min-width:340px) and (max-width:599px){
  html:not(.ui-nl) .obclassf.fg,html:not(.ui-nl) .obdate.fg{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .obclassf.fg>:is(.s1,.s2){grid-column:span 1!important}
  html:not(.ui-nl) .obclassf.fg>:is(.s3,.s4,.obwide,.obdate,.obmore){grid-column:1/-1!important}
  html:not(.ui-nl) .obdate.fg>.s1{grid-column:span 1!important}
  html:not(.ui-nl) .obdate.fg>:is(.s2,.s3,.s4){grid-column:1/-1!important}
}
/* OB1.1.1 · the owner chose the wider drawer (760px, 12 Oct 2026): from 600px inside, six columns. The form: the program and the class
   name a half each; each date block: the date, the two times a third each on one row, the place and the typed place a half each;
   seats, contact and the note a third each. */
@container obdp (min-width:600px){
  html:not(.ui-nl) .obclassf.fg,html:not(.ui-nl) .obdate.fg{grid-template-columns:repeat(6,minmax(0,1fr))}
  html:not(.ui-nl) .obclassf.fg>.s2:not(.obwide){grid-column:span 3!important}
  html:not(.ui-nl) .obclassf.fg>:is(.s1,.obwide){grid-column:span 2!important}
  html:not(.ui-nl) .obclassf.fg>:is(.s3,.s4,.obdate,.obmore){grid-column:1/-1!important}
  html:not(.ui-nl) .obdate.fg>:is(.s1,div.s2){grid-column:span 2!important}
  html:not(.ui-nl) .obdate.fg>label.s2{grid-column:span 3!important}
  html:not(.ui-nl) .obdate.fg>:is(.s3,.s4){grid-column:1/-1!important}
}
/* OB1.2 · the New location panel inside a drawer (§261): a soft card under the place picker; its own small form after the drawer's form
   holds nothing visible. Hidden by script, so it needs its own hidden rule (the field class's display beats the browser's). */
html:not(.ui-nl) .oblocp[hidden],html:not(.ui-nl) .obdp .oblocf{display:none!important}
html:not(.ui-nl) .oblocp{display:grid;gap:12px;padding:14px 16px;border:1px solid var(--cl-line);border-radius:16px;background:var(--soft)}
html:not(.ui-nl) .oblocph{display:flex;flex-direction:column;gap:2px;margin:0}
html:not(.ui-nl) .oblocph b{font-size:15px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .oblocp .gfld{display:grid;gap:6px;margin:0}
html:not(.ui-nl) .oblocp .abox{margin:0}
html:not(.ui-nl) .oblocpf{display:flex;gap:10px;flex-wrap:wrap;margin:0}
html:not(.ui-nl) .oblocp [data-oblocerr]:empty{display:none}
html:not(.ui-nl) .oblocmsg{color:var(--ok-ink,var(--ink));font-weight:600}
html:not(.ui-nl) .oblocmsg:empty{display:none}
/* OB1.2 · the pass over every orientation screen (§261, F4; tools/ob12_fitscan.js keeps it so) */
html:not(.ui-nl) select>button.obselb{all:unset;display:block;min-width:0;max-width:100%;overflow:hidden;cursor:inherit}
html:not(.ui-nl) select>button.obselb selectedcontent{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html:not(.ui-nl) .obdp .plopt input[type=radio],html:not(.ui-nl) .obsec .plopt input[type=radio]{margin:0}   /* the radio's default top margin set its dot 1.5px low */
/* OB1.2 · .fg .fld (core/classic.php) makes every field a column; these rows and the panel say otherwise, with enough weight to win */
html:not(.ui-nl) .obform>.obaddrow.fld,html:not(.ui-nl) .obmitem>.obmin.fld{flex-direction:row;align-items:center;justify-content:flex-start}
html:not(.ui-nl) .obmitem>.obmin.fld{justify-content:space-between}
html:not(.ui-nl) .obform .oblocp.fld{display:grid;align-items:start}
html:not(.ui-nl) .obform .oblocp.fld>label.gfld{display:grid;gap:6px;align-items:stretch;justify-items:stretch;min-height:0}
html:not(.ui-nl) .oblochint{min-height:0}html:not(.ui-nl) .oblochint:empty{display:none}
@container obdp (max-width:599px){
  html:not(.ui-nl) .obdp .fg:not(.obclassf):not(.obdate)>.fld{grid-column:1/-1!important}   /* a narrow drawer (a phone): one field a row */
}
html:not(.ui-nl) .obdp .abox .abgrid{grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr))}
@container obdp (min-width:600px){
  html:not(.ui-nl) .obdp .fg:not(.obclassf):not(.obdate):not(.obsetg){grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .obdp .fg:not(.obclassf):not(.obdate):not(.obsetg)>.fld:is(.s1,.s2){grid-column:span 1!important}
  html:not(.ui-nl) .obdp .fg:not(.obclassf):not(.obdate):not(.obsetg)>.fld:is(.s3,.s4){grid-column:1/-1!important}
  html:not(.ui-nl) .obdp .abox .abgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
html:not(.ui-nl) .obcpi>a.psm{display:inline-flex;align-items:center;min-height:44px;align-self:flex-start}
html:not(.ui-nl) .obdis{opacity:.6;cursor:default}
html:not(.ui-nl) .obwlead{margin:0;font-size:17px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obwfoot{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obmailf{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap;margin:0}
html:not(.ui-nl) .obmailf .gfld{display:grid;gap:6px;margin:0}html:not(.ui-nl) .obmailf .gfld span{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obbook .rmorep{min-width:min(380px,calc(100vw - 32px))}
html:not(.ui-nl) .obrange{display:grid;gap:10px;padding:10px 16px 12px;border-top:1px solid var(--cl-line);margin-top:6px}
/* Today and the office list */
html:not(.ui-nl) .obnums{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:4px 0 12px}
html:not(.ui-nl) .obnums.obnums3{grid-template-columns:repeat(3,minmax(0,1fr))}
html:not(.ui-nl) .obnums>*{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:14px;background:var(--soft);color:var(--ink);text-decoration:none}
html:not(.ui-nl) .obnums b{font:400 28px/1.1 var(--display)}html:not(.ui-nl) .obnums span{font-size:14px;color:var(--muted)}
html:not(.ui-nl) .obth{margin:16px 0 4px;font-size:16px;font-weight:600}
html:not(.ui-nl) .obseg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--soft);margin-bottom:14px}
html:not(.ui-nl) .obseg a{padding:8px 16px;border-radius:999px;color:var(--cl-ink2);font-weight:600;text-decoration:none;min-height:36px;display:inline-flex;align-items:center}
html:not(.ui-nl) .obseg a.on{background:var(--card);color:var(--ink);box-shadow:var(--sh-card)}
html:not(.ui-nl) .obbar{display:flex;align-items:flex-end;gap:10px 14px;flex-wrap:wrap;padding:14px 16px;margin-bottom:14px}
html:not(.ui-nl) .obbar>details>summary{list-style:none}html:not(.ui-nl) .obbar>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obsrch{flex:1 1 240px;min-width:0}html:not(.ui-nl) .obsrch input{width:100%}
/* FX1 · F9: Dates in a label slot like the drop-downs beside it; its button as tall as they are; the search box too */
html:not(.ui-nl) .obfltd{display:grid;gap:4px;min-width:0;margin:0 0 4px}   /* a label element carries 4px under it; this div matches */
html:not(.ui-nl) .obfltd>.obfltl[hidden]{display:block;font-size:14px;font-weight:600;color:var(--muted)}   /* shown in modern Classic only (the paused look keeps its own bar, where "Dates:" stays in the button) */
html:not(.ui-nl) .obbar>.obfltd>details>summary{list-style:none}html:not(.ui-nl) .obbar>.obfltd>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obfltd .obdates>summary{min-height:44px;width:100%;justify-content:flex-start}
html:not(.ui-nl) .obsrch input{min-height:44px}
html:not(.ui-nl) .obbar.obbarg{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));align-items:end}
html:not(.ui-nl) .obbarg>.obflt,html:not(.ui-nl) .obbarg>.obfltd,html:not(.ui-nl) .obbarg>.obsrch{min-width:0}
html:not(.ui-nl) .obbarg>.obsrch{display:grid;gap:4px}html:not(.ui-nl) .obbarg>.obsrch>.sr{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obbarg .obdk{display:none}
@media(min-width:700px){ html:not(.ui-nl) .obbarg>.obsrch{grid-column:span 2} }
@media(max-width:520px){ html:not(.ui-nl) .obbarg>.obfltd{grid-template-columns:92px minmax(0,1fr);align-items:center} }   /* the search keeps its label above: its hint needs the whole row */
html:not(.ui-nl) .obflt{display:grid;gap:4px;min-width:180px}html:not(.ui-nl) .obflt .gtok{max-width:none}   /* OB1.2 · 150px cut "Every location" and "Every recruiter" (§261) */html:not(.ui-nl) .obflt>span{font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obbig{padding:6px 20px}
html:not(.ui-nl) .obfacts{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
html:not(.ui-nl) .obfact{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13px;font-weight:600}
html:not(.ui-nl) .obfact.warn{background:var(--warn-bg);color:var(--ink)}html:not(.ui-nl) .obfact.bad{background:var(--bad-bg);color:var(--bad)}html:not(.ui-nl) .obfact.ok{background:var(--ok-bg);color:var(--ok)}
/* Settings */
html:not(.ui-nl) .obsetg{margin-top:10px}
/* the Career Profile's card */
html:not(.ui-nl) .obcpl{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:12px}
html:not(.ui-nl) .obcpi{padding:14px;border-radius:14px;background:var(--soft);display:flex;flex-direction:column;gap:4px}
html:not(.ui-nl) .obcpi.now{background:var(--accent-soft)}
html:not(.ui-nl) .obcph{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .obconf{margin:6px 0 0}
html:not(.ui-nl) .obcp .obday{margin-top:6px}
@media(max-width:820px){
  html:not(.ui-nl) .obkvs{grid-template-columns:1fr 1fr;gap:14px}
  html:not(.ui-nl) .obnums{grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .obnums.obnums3{grid-template-columns:repeat(3,minmax(0,1fr))}
  html:not(.ui-nl) .obrow{flex-wrap:wrap}
  html:not(.ui-nl) .obra{width:100%;padding-left:66px;justify-content:flex-start;box-sizing:border-box}
  html:not(.ui-nl) .obfirst{flex-wrap:wrap}
  html:not(.ui-nl) :is(.obcard,.obclient){padding:18px}
  html:not(.ui-nl) .obflt{min-width:0;flex:1 1 180px}
  html:not(.ui-nl) .obbig{padding:4px 14px}
}
@media(max-width:520px){
  html:not(.ui-nl) .obflt{flex:1 1 100%;grid-template-columns:92px minmax(0,1fr);align-items:center}   /* OB1.2 · the label beside its token, one a row: "Every location" fits */
  html:not(.ui-nl) .obkvs{grid-template-columns:1fr}
  html:not(.ui-nl) .obnums.obnums3{grid-template-columns:1fr 1fr}
}
html:not(.ui-nl) .obbad{color:var(--bad)}
html:not(.ui-nl) .obwarnt{color:var(--warn-ink,var(--ink));font-weight:600}
/* ===== OB1b · materials, evaluations, the recruiter's items, notifications (core/obmore_ui.php; canvas rows 51 to 53) ===== */
html:not(.ui-nl) .obptabs{margin:12px 0 10px}
html:not(.ui-nl) .obform [data-obmk][hidden],html:not(.ui-nl) .obform .obaddrow [hidden],html:not(.ui-nl) .obmitem[hidden]{display:none!important}
html:not(.ui-nl) .obmitems{display:grid;gap:14px}
html:not(.ui-nl) .obmitem{border:1px solid var(--line);border-radius:16px;padding:12px 14px;background:var(--surface)}
html:not(.ui-nl) .obmitem.obmone{border:0;padding:0;background:none}
html:not(.ui-nl) .obmitem.obmone .obmin{display:none}
html:not(.ui-nl) .obmin{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0}
html:not(.ui-nl) .obmin b{font-size:15px;font-weight:600}
html:not(.ui-nl) .obmshared{margin:6px 0 0;padding-top:12px;border-top:1px solid var(--line)}
html:not(.ui-nl) .obmath{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .obmath p{margin:0;flex:1 1 280px}
html:not(.ui-nl) .obmath>details>summary{list-style:none}html:not(.ui-nl) .obmath>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obmg{margin:16px 0 4px;font-size:15px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obmic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--soft);color:var(--cl-ink2);flex:none}
html:not(.ui-nl) .obeq{margin:6px 0 10px;padding-left:22px;display:grid;gap:4px}
html:not(.ui-nl) .obeval0>details>summary,html:not(.ui-nl) .obevh .obhr>details>summary{list-style:none}
html:not(.ui-nl) .obeval0>details>summary::-webkit-details-marker,html:not(.ui-nl) .obevh .obhr>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obline .chip{margin:0}
html:not(.ui-nl) .obev{padding:14px 0 4px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obevh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}
html:not(.ui-nl) .obevh h3{margin:0 0 6px;font-size:18px;font-weight:600}
html:not(.ui-nl) .obscores{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 28px;margin:12px 0}
html:not(.ui-nl) .obscores>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obscores dt{color:var(--ink);font-weight:500}html:not(.ui-nl) .obscores dd{margin:0;display:flex;align-items:center;gap:8px}
html:not(.ui-nl) .obdots{display:inline-flex;gap:4px}html:not(.ui-nl) .obdots i{width:12px;height:12px;border-radius:50%;background:var(--cl-line2)}html:not(.ui-nl) .obdots i.on{background:var(--btn)}
html:not(.ui-nl) .obevcom{margin:8px 0 0;display:flex;flex-direction:column;gap:4px}
html:not(.ui-nl) .obev1{padding:12px 0;border-top:1px solid var(--cl-line)}html:not(.ui-nl) .obev1 p{margin:0}html:not(.ui-nl) .obev1 .obline{margin-bottom:4px}
html:not(.ui-nl) .obscale{border:0;margin:0;padding:0}html:not(.ui-nl) .obsc{display:flex;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .obsc label{position:relative}html:not(.ui-nl) .obsc input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obsc span{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--soft);color:var(--ink);font-weight:600;cursor:pointer}
html:not(.ui-nl) .obsc input:checked+span{background:var(--btn);color:var(--on-btn)}html:not(.ui-nl) .obsc input:focus-visible+span{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obline.obline{margin:0}
/* the matrix */
html:not(.ui-nl) .obnav{margin-bottom:14px}
html:not(.ui-nl) .ntcard{padding:24px}
html:not(.ui-nl) .ntbar{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:6px 0 14px}
html:not(.ui-nl) .ntlegend{margin:0;display:flex;align-items:center;gap:6px;flex-wrap:wrap;color:var(--muted)}
html:not(.ui-nl) .ntgrid{display:grid;gap:0}
html:not(.ui-nl) .ntrow{display:grid;grid-template-columns:minmax(200px,1.3fr) repeat(5,minmax(0,1fr));gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .nthead{border-top:0;font-size:14px;font-weight:600;color:var(--muted);padding-top:0}
html:not(.ui-nl) .ntev{display:flex;flex-direction:column;gap:2px;position:relative;padding-right:44px}html:not(.ui-nl) .ntev b{font-weight:600;color:var(--ink)}html:not(.ui-nl) .ntev small{color:var(--muted);font-size:13.5px}
html:not(.ui-nl) .ntpen{position:absolute;right:0;top:0}html:not(.ui-nl) .ntpen>summary{list-style:none}html:not(.ui-nl) .ntpen>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .ntaud{display:none;font-size:13px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .ntchips{display:flex;gap:4px;flex-wrap:wrap}
html:not(.ui-nl) .ntchip{position:relative;display:inline-flex}
html:not(.ui-nl) .ntchip input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .ntchip span{display:inline-flex;align-items:center;min-height:28px;padding:2px 9px;border-radius:999px;background:var(--soft);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer}
html:not(.ui-nl) .ntchip input:checked+span,html:not(.ui-nl) .ntchip.on span{background:var(--btn);color:var(--on-btn)}
html:not(.ui-nl) .ntchip input:disabled+span{opacity:.55;cursor:default}
html:not(.ui-nl) .ntchip input:focus-visible+span{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .ntnever{font-size:13px;color:var(--muted);font-style:italic}
html:not(.ui-nl) .ntins{display:flex;gap:6px;flex-wrap:wrap;margin:0}
html:not(.ui-nl) .ntfield{min-height:32px;padding:2px 10px;border-radius:999px;border:0;background:var(--soft);color:var(--ink);font:600 13px/1.2 var(--mono,ui-monospace,monospace);cursor:pointer}
html:not(.ui-nl) .ntsub{display:flex;gap:8px;flex-wrap:wrap;padding-top:10px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ntmine{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .ntmine:first-of-type{border-top:0}
html:not(.ui-nl) .obline{margin:0}
@media(max-width:820px){
  html:not(.ui-nl) .ntchip span{min-height:44px;padding:2px 14px}
  html:not(.ui-nl) .ntchips{gap:6px}
}
@media(max-width:1100px){
  html:not(.ui-nl) .nthead{display:none}
  html:not(.ui-nl) .ntrow{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
  html:not(.ui-nl) .ntev{grid-column:1/-1}
  html:not(.ui-nl) .ntaud{display:block;margin-bottom:4px}
}
@media(max-width:520px){
  html:not(.ui-nl) .ntrow{grid-template-columns:1fr}
  html:not(.ui-nl) .obscores{grid-template-columns:1fr}
  html:not(.ui-nl) .ntcard{padding:18px}
}
/* ===== OBR1 · the orientation redesign (core/obr_ui.php; canvas rows 55 to 58) ===== */
html:not(.ui-nl) .obrpage{display:flex;flex-direction:column;gap:18px;min-width:0}
html:not(.ui-nl) .obrpage svg.obic{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .obrhead{display:flex;align-items:flex-end;justify-content:space-between;gap:14px 18px;flex-wrap:wrap}
html:not(.ui-nl) .obrht{min-width:0;flex:1 1 320px}
html:not(.ui-nl) .obreyebrow{margin:0 0 2px;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrht h2{margin:0;font:300 clamp(28px,2.6vw,36px)/1.15 var(--display);color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .obrsub{margin:6px 0 0;color:var(--cl-ink2);font-size:16px;max-width:62ch}
html:not(.ui-nl) .obrhr{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) :is(.obrhr,.obrsa,.obrdacts,.obrrunh)>details>summary{list-style:none}html:not(.ui-nl) :is(.obrhr,.obrsa,.obrdacts,.obrrunh)>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obrcard{padding:24px}
html:not(.ui-nl) .obrcard h3{margin:0;font-size:18px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrcrumb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:15px}
html:not(.ui-nl) .obrcrumb a{font-weight:600;color:var(--accent);text-decoration:none}html:not(.ui-nl) .obrcrumb svg.obic{width:14px;height:14px;color:var(--muted)}html:not(.ui-nl) .obrcrumb [aria-current]{color:var(--cl-ink2)}
html:not(.ui-nl) .obrline{margin:4px 0 0;color:var(--cl-ink2)}
/* the five steps */
html:not(.ui-nl) .obrsteps{padding:6px 24px}
html:not(.ui-nl) .obrstep{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 14px;padding:22px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrstep:first-child{border-top:0}
html:not(.ui-nl) .obrnum{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:14px}
html:not(.ui-nl) .obrsb{min-width:0;display:flex;flex-direction:column;gap:10px}
html:not(.ui-nl) .obrsh{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 14px;flex-wrap:wrap}
html:not(.ui-nl) .obrst{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}
html:not(.ui-nl) .obrst h3{margin:0;font-size:18px;font-weight:600}
html:not(.ui-nl) .obrmeta{color:var(--cl-ink2);font-size:14.5px}
html:not(.ui-nl) .obrsa{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .obrsub2{margin:-4px 0 0;color:var(--cl-ink2);font-size:15px;max-width:66ch}
/* the items (Before day 1, After) */
html:not(.ui-nl) .obrits{list-style:none;margin:2px 0 0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
html:not(.ui-nl) .obrit{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--cl-line);border-radius:14px;background:var(--card);min-width:0}
html:not(.ui-nl) .obrico{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft);flex:none}
html:not(.ui-nl) .obrico.ok{background:var(--ok-bg);color:var(--ok)}
html:not(.ui-nl) .obritt{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 auto}
html:not(.ui-nl) .obritt b{font-weight:600;color:var(--ink);overflow-wrap:anywhere}
html:not(.ui-nl) .obritt>span{color:var(--cl-ink2);font-size:14px}
html:not(.ui-nl) .obritm{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;font-size:13.5px;color:var(--cl-ink2)}
html:not(.ui-nl) .obrch{display:inline-flex;align-items:center;min-height:22px;padding:1px 9px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-size:13px;font-weight:600;white-space:nowrap}
html:not(.ui-nl) .obrch.ok{background:var(--ok-bg);color:var(--ok)}html:not(.ui-nl) .obrch.acc{background:var(--info-bg);color:var(--info);white-space:normal}html:not(.ui-nl) .obrch.mute{background:var(--soft);color:var(--muted)}
html:not(.ui-nl) .obrx{width:32px;height:32px;min-height:32px;flex:none;color:var(--muted)}
/* step 2: the days and the runs */
html:not(.ui-nl) .obrdays,html:not(.ui-nl) .obrrunl,html:not(.ui-nl) .obrpaths{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .obrdayr{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrdays>.obrdayr:first-child{border-top:0}
html:not(.ui-nl) .obrdt{width:44px;height:48px;border:1px solid var(--cl-line);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.05;color:var(--cl-ink2)}
html:not(.ui-nl) .obrdt small{font-size:12px;font-weight:600;letter-spacing:.06em}html:not(.ui-nl) .obrdt b{font-size:16px;font-weight:600;color:var(--accent)}
html:not(.ui-nl) .obrdm{display:flex;flex-direction:column;gap:3px;min-width:0}html:not(.ui-nl) .obrdm b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrdi{display:flex;align-items:center;gap:6px 14px;flex-wrap:wrap;color:var(--cl-ink2);font-size:14.5px;margin:0}
html:not(.ui-nl) .obrdi svg.obic{width:15px;height:15px}html:not(.ui-nl) .obrdp{display:inline-flex;align-items:center;gap:6px}
html:not(.ui-nl) .obrdr{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
html:not(.ui-nl) .obrruns{margin-top:6px;display:flex;flex-direction:column;gap:10px}
html:not(.ui-nl) .obrrunh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
html:not(.ui-nl) .obrrunh h4{margin:0;font-size:16px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrdraftb{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap;padding:12px 16px;border-radius:14px;background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .obrdraftb p{margin:0;flex:1 1 260px;color:var(--ink)}html:not(.ui-nl) .obrdraftb svg.obic{color:var(--on-accent-soft)}
html:not(.ui-nl) .obrrun{display:grid;grid-template-columns:60px minmax(0,1fr) 160px auto;align-items:center;gap:8px 16px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrrunl>.obrrun:first-child{border-top:0}
html:not(.ui-nl) .obrtile{width:56px;min-height:64px;border:1px solid var(--cl-line);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1;color:var(--cl-ink2)}
html:not(.ui-nl) .obrtile small{font-size:12px;font-weight:600;letter-spacing:.05em}html:not(.ui-nl) .obrtile small:first-child{color:var(--accent)}html:not(.ui-nl) .obrtile b{font:400 22px/1.15 var(--display);color:var(--ink)}
html:not(.ui-nl) .obrrm{display:flex;flex-direction:column;gap:4px;min-width:0}
html:not(.ui-nl) .obrrt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}html:not(.ui-nl) .obrrt b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrrs{color:var(--cl-ink2);font-size:14.5px;overflow-wrap:anywhere}
html:not(.ui-nl) .obrst.run,html:not(.ui-nl) .obrst.dr,html:not(.ui-nl) .obrst.own,html:not(.ui-nl) .obrst.bad{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:1px 10px;border-radius:999px;font-size:13px;font-weight:600;white-space:nowrap}
html:not(.ui-nl) :is(.obrst.run,.obrst.dr,.obrst.own,.obrst.bad)::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
html:not(.ui-nl) .obrst.run{background:var(--info-bg);color:var(--info)}html:not(.ui-nl) .obrst.dr{background:var(--soft);color:var(--cl-ink2)}html:not(.ui-nl) .obrst.own{background:var(--accent-soft);color:var(--on-accent-soft)}html:not(.ui-nl) .obrst.bad{background:var(--bad-bg);color:var(--bad)}
html:not(.ui-nl) .obrst.own[hidden]{display:none}
html:not(.ui-nl) .obrseat{display:flex;flex-direction:column;gap:6px;font-size:14.5px;color:var(--cl-ink2)}html:not(.ui-nl) .obrseat b{color:var(--ink);font-weight:600}
html:not(.ui-nl) .obrbar{display:block;height:6px;border-radius:99px;background:var(--cl-line2);overflow:hidden}html:not(.ui-nl) .obrbar i{display:block;height:100%;width:calc(var(--pct,0) * 1%);border-radius:99px;background:var(--btn)}
html:not(.ui-nl) .obrra{display:flex;justify-content:flex-end}
html:not(.ui-nl) .obrrun.draft .obrtile{border-style:dashed}
/* step 3 and the pay line */
html:not(.ui-nl) .obrpaths li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--cl-line)}html:not(.ui-nl) .obrpaths li:first-child{border-top:0}
html:not(.ui-nl) .obrdirect{display:flex;align-items:center;gap:12px}
html:not(.ui-nl) .obrdirect .grow{flex:1;min-width:0}
html:not(.ui-nl) .obrdirect select{flex:0 0 auto;width:auto;max-width:160px}
html:not(.ui-nl) .obrdirectw{padding:6px 10px;margin-top:12px}
html:not(.ui-nl) .obrdirect select{min-height:34px;border:1px solid var(--cl-line);border-radius:10px;padding:0 8px;font:inherit;background:var(--surface);color:var(--ink)}
html:not(.ui-nl) .obrpay{display:flex;align-items:center;gap:12px;margin:4px 0 20px;padding:12px 16px;border:1px solid var(--cl-line);border-radius:14px;background:var(--soft)}
html:not(.ui-nl) .obrpayi{color:var(--cl-ink2);display:inline-flex}html:not(.ui-nl) .obrpayt{flex:1 1 auto;min-width:0;color:var(--ink)}
html:not(.ui-nl) .obrpay>details>summary{list-style:none}html:not(.ui-nl) .obrpay>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obrchg{color:var(--accent);font-weight:600;cursor:pointer;min-height:36px;display:inline-flex;align-items:center;list-style:none;white-space:nowrap}html:not(.ui-nl) .obrchg::-webkit-details-marker{display:none}
/* in-place forms (paths, cleared) */
html:not(.ui-nl) .obrpf{display:flex;flex-direction:column;gap:14px}
html:not(.ui-nl) .obrpt{display:flex;flex-direction:column}
html:not(.ui-nl) .obrptr{display:grid;grid-template-columns:44px minmax(110px,1fr) 136px minmax(150px,1.3fr) minmax(220px,1fr);align-items:center;gap:8px 14px;padding:10px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrpth{border-top:0;padding-top:0;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrptr>b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrnolab{display:flex;gap:6px;margin:0}html:not(.ui-nl) .obrnolab>:is(input,select){width:100%;min-width:0}html:not(.ui-nl) .obrnolab>select{min-width:128px}html:not(.ui-nl) .obrnolab>select+input{flex:0 0 84px}
html:not(.ui-nl) .obrstep2{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--cl-line);border-radius:999px;background:var(--card);width:max-content}
html:not(.ui-nl) .obrstep2 .gicb{width:34px;height:34px;min-height:34px;font-size:18px;line-height:1}
html:not(.ui-nl) .obrstep2 input{width:40px;min-width:0;text-align:center;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;font-weight:600;-moz-appearance:textfield}
html:not(.ui-nl) .obrstep2 input{margin:0!important;align-self:center;height:34px;min-height:0!important;line-height:34px}   /* FX1 · the client page's own field rules left it 2px low (ob12_fitscan) */
html:not(.ui-nl) .obrstep2 input::-webkit-inner-spin-button,html:not(.ui-nl) .obrstep2 input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
html:not(.ui-nl) .obrsame{display:flex;gap:10px;align-items:flex-start}html:not(.ui-nl) .obrsame small{display:block;color:var(--muted);font-weight:400}
html:not(.ui-nl) .obrboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html:not(.ui-nl) .obrbox{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1.5px solid var(--cl-line);border-radius:16px;cursor:pointer}
html:not(.ui-nl) .obrbox:has(input:checked){border-color:transparent;background:var(--accent-soft)}
html:not(.ui-nl) .obrbox input{margin:3px 0 0;flex:none}html:not(.ui-nl) .obrbox b{display:block;color:var(--ink);font-weight:600}html:not(.ui-nl) .obrbox small{display:block;color:var(--cl-ink2);margin-top:2px}
html:not(.ui-nl) .obrfoot{display:flex;align-items:center;justify-content:flex-end;gap:10px 12px;flex-wrap:wrap;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrfoot.left{justify-content:flex-start;border-top:0}
html:not(.ui-nl) .obrfoot>[data-obrcount],html:not(.ui-nl) .obrfoot>[data-obrcopyn]{margin-right:auto}
/* the Class days page: its own page (OBRDays), the table needs the width, so the client's head and menu step aside */
html:not(.ui-nl) .main:has(> .obrdayspage) > :is(nav.clnav,section.cchead){display:none}
html:not(.ui-nl) .main:has(> .obrdayspage){grid-template-columns:minmax(0,1fr)}
html:not(.ui-nl) .main:has(> .obrdayspage) > section.obrpage.obrdayspage,html:not(.ui-nl) .main:has(> .obrdayspage) > :not(nav):not(section.cchead){grid-column:1 / -1}
html:not(.ui-nl) .obrdtr .oblochint{display:none}
html:not(.ui-nl) .obrcardh{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
html:not(.ui-nl) .obrcnt{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:2px 12px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-weight:600;font-size:14px;white-space:nowrap}
html:not(.ui-nl) .obrdtab{display:flex;flex-direction:column}
html:not(.ui-nl) .obrdtr{display:grid;grid-template-columns:64px minmax(130px,1.4fr) 172px 172px minmax(170px,1.6fr) repeat(var(--obrroles,1),minmax(64px,104px)) 44px;align-items:center;gap:10px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrdth{border-top:0;padding-top:0;font-size:13.5px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrdth .obrrolec{text-align:center;line-height:1.2;font-size:13px}
html:not(.ui-nl) .obrdsum{display:none}
html:not(.ui-nl) .obrdayb{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border-radius:8px;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:14px;white-space:nowrap}
html:not(.ui-nl) .obrdtr .gfld{margin:0;display:block}html:not(.ui-nl) .obrdtr .gfld>input,html:not(.ui-nl) .obrdtr .gfld>select{width:100%;min-width:0}
html:not(.ui-nl) .obrcl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html:not(.ui-nl) .obrdtr .dtpf .nlwl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html:not(.ui-nl) .obrdtr .dtpf{margin:0;min-width:0}
html:not(.ui-nl) .obrdc4{display:flex;flex-direction:column;gap:6px;min-width:0}
html:not(.ui-nl) .obrtyped[data-obrhide]{display:none!important}
html:not(.ui-nl) .obrdtick{display:flex;justify-content:center;align-items:center;cursor:pointer;min-height:44px}
html:not(.ui-nl) .obrdtick input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obrtk{width:30px;height:30px;border-radius:8px;border:1.5px solid var(--cl-line2);background:var(--card);display:grid;place-items:center;color:transparent}
html:not(.ui-nl) .obrtk svg.obic{width:16px;height:16px;stroke-width:2.4}
html:not(.ui-nl) .obrdtick input:checked+.obrtk{background:linear-gradient(180deg,var(--btn-top),var(--btn));border-color:transparent;color:var(--on-btn)}
html:not(.ui-nl) .obrdtick input:focus-visible+.obrtk{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obrtkl{display:none}
html:not(.ui-nl) .obrdcm{display:flex;justify-content:center}html:not(.ui-nl) .obrdcm>details>summary{list-style:none}html:not(.ui-nl) .obrdcm>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obrdel{cursor:pointer}html:not(.ui-nl) .obrdel input{margin-right:6px}
html:not(.ui-nl) .obrdtr:has(.obrdel input:checked)>:not(.obrdcm){opacity:.45;text-decoration:line-through}
html:not(.ui-nl) .obrdacts{display:flex;align-items:center;gap:10px 12px;flex-wrap:wrap;margin-top:14px}
html:not(.ui-nl) .obrrolepick{display:flex;align-items:flex-end;gap:8px;padding:10px 16px 12px;border-top:1px solid var(--cl-line)}html:not(.ui-nl) .obrrolepick .gfld{display:grid;gap:4px;margin:0;flex:1 1 auto}
html:not(.ui-nl) .obrwho{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
html:not(.ui-nl) .obrwho li{display:grid;grid-template-columns:minmax(120px,180px) minmax(0,1fr) auto;align-items:center;gap:6px 14px;padding:12px 16px;border:1px solid var(--cl-line);border-radius:14px}
html:not(.ui-nl) .obrwho li b{font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrwho li>span:last-child{text-align:right}
html:not(.ui-nl) .obrinfo{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-radius:16px;background:var(--accent-soft);color:var(--ink)}
html:not(.ui-nl) .obrinfo p{margin:0}html:not(.ui-nl) .obrinfo p b{display:block;margin-bottom:2px}html:not(.ui-nl) .obrinfo svg.obic{color:var(--on-accent-soft);margin-top:2px}
html:not(.ui-nl) .obrsave{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:6px;padding:12px 76px 12px 16px;border-radius:18px;background:var(--card);box-shadow:var(--sh-lg,var(--sh-card));border:1px solid var(--cl-line)}
html:not(.ui-nl) .obrsave [data-obrchanges]{margin-right:auto;color:var(--cl-ink2)}
html:not(.ui-nl) .obrhidden{display:none}
/* FX1 · the owner's findings of 13 Oct 2026 */
/* F3, F10 · the X on a role's row (Hands-on, by role; Who comes when) */
html:not(.ui-nl) .obrptn{display:flex;align-items:center;gap:6px;min-width:0}
html:not(.ui-nl) .obrptn>span{min-width:0;overflow-wrap:anywhere}
html:not(.ui-nl) .obrpx{display:inline-grid;place-items:center;width:32px;height:32px;min-height:32px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;flex:none}
html:not(.ui-nl) .obrpx:hover{background:var(--soft);color:var(--bad,var(--ink))}
html:not(.ui-nl) .obrpx:focus-visible{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obrpx svg{width:16px;height:16px}
html:not(.ui-nl) .obrpadd{margin-top:12px}
/* F6 · the X at the end of a day row: a toggle; ticked, the row is struck through and the X reads Undo */
html:not(.ui-nl) .obrdx{position:relative;display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:40px;padding:0 8px;border-radius:999px;color:var(--muted);cursor:pointer}
html:not(.ui-nl) .obrdx:hover{background:var(--soft);color:var(--bad,var(--ink))}
html:not(.ui-nl) .obrdx input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obrdx input:focus-visible~.obrdxi{outline:2px solid var(--btn);outline-offset:2px;border-radius:50%}
html:not(.ui-nl) .obrdxi{display:inline-grid;place-items:center}html:not(.ui-nl) .obrdxi svg{width:18px;height:18px}
html:not(.ui-nl) .obrdxu{display:none;font-size:14px;font-weight:600;color:var(--accent)}
html:not(.ui-nl) .obrdx:has(input:checked) .obrdxi{display:none}html:not(.ui-nl) .obrdx:has(input:checked) .obrdxu{display:inline}
html:not(.ui-nl) .obrdtr:has(.obrdx input:checked)>.obrdcm{opacity:1;text-decoration:none}
/* F7 · the role columns of "The days, described once": names wrap (a break after "/"), the columns share the room */
html:not(.ui-nl) .obrdth .obrrolec{overflow-wrap:anywhere;hyphens:auto;min-width:0;padding:0 2px}
/* F11 · "+ Role": the drop-down as wide as its longest role, the panel wide enough to hold it */
html:not(.ui-nl) .rmorep:has(.obrrolepick){min-width:min(380px,calc(100vw - 32px))}
html:not(.ui-nl) .obrrolepick{flex-wrap:wrap}
html:not(.ui-nl) .obrrolepick .gfld{flex:1 1 220px;min-width:0}
html:not(.ui-nl) .obrrolepick .gfld>select{width:100%;min-width:min(14rem,100%)}
/* the class run drawer: the calendar, the chips, the days */
html:not(.ui-nl) .obrrunf,html:not(.ui-nl) .obrcopyf,html:not(.ui-nl) .obrreqf{display:flex;flex-direction:column;gap:14px}
html:not(.ui-nl) .obrhint{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:14px;background:var(--accent-soft);color:var(--ink);font-size:15px}
html:not(.ui-nl) .obrhint svg.obic{color:var(--on-accent-soft);margin-top:2px}
html:not(.ui-nl) .obrcalw{display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:14px 18px;align-items:start}
html:not(.ui-nl) .obrcalside{display:flex;flex-direction:column;gap:12px}
html:not(.ui-nl) .obrcalh{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}html:not(.ui-nl) .obrcalh b{font-size:17px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrcalh button{width:36px;height:36px;border-radius:50%;border:0;background:var(--soft);color:var(--ink);font-size:20px;line-height:1;cursor:pointer;margin-left:6px}
html:not(.ui-nl) .obrcalg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
html:not(.ui-nl) .obrcalw[role=columnheader]{display:block;text-align:center;font-size:12.5px;font-weight:600;color:var(--muted);padding:2px 0}
html:not(.ui-nl) .obrcd{min-height:46px;border:0;border-radius:10px;background:transparent;color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;cursor:pointer;font:inherit;padding:2px}
html:not(.ui-nl) .obrcd b{font-weight:500;font-size:15px}html:not(.ui-nl) .obrcd small{font-size:12px;font-weight:600;color:var(--muted);line-height:1}
html:not(.ui-nl) .obrcd:hover{background:var(--soft)}
html:not(.ui-nl) .obrcd.we{background:repeating-linear-gradient(135deg,transparent 0 5px,var(--soft) 5px 7px)}
html:not(.ui-nl) .obrcd.out b{color:var(--muted)}
html:not(.ui-nl) .obrcd.past{opacity:.4;cursor:default}
html:not(.ui-nl) .obrcd.on{background:linear-gradient(180deg,var(--btn-top),var(--btn));color:var(--on-btn)}html:not(.ui-nl) .obrcd.on small{color:var(--on-btn)}
html:not(.ui-nl) .obrcd:focus-visible{outline:2px solid var(--btn);outline-offset:1px}
html:not(.ui-nl) .obrsw{display:flex;align-items:center;justify-content:space-between;gap:10px;font-weight:600;color:var(--ink);cursor:pointer}
html:not(.ui-nl) .obrsw input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obrswk{width:44px;height:26px;border-radius:99px;background:var(--cl-line2);position:relative;flex:none;transition:background .2s}
html:not(.ui-nl) .obrswk::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background-color:var(--on-btn);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
html:not(.ui-nl) .obrsw input:checked+.obrswk{background:var(--btn)}html:not(.ui-nl) .obrsw input:checked+.obrswk::after{left:21px}
html:not(.ui-nl) .obrsw input:focus-visible+.obrswk{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obrchipsel{display:flex;flex-wrap:wrap;gap:8px}html:not(.ui-nl) .obrchipsel:empty{display:none}
html:not(.ui-nl) .obrchipd{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:2px 6px 2px 12px;border-radius:999px;background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600;font-size:14px}
html:not(.ui-nl) .obrchipd button{width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:16px;cursor:pointer}
html:not(.ui-nl) .obrh4{margin:4px 0 0;font-size:16px;font-weight:600;color:var(--ink);padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrrdays{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .obrrdy{position:relative;display:grid;grid-template-columns:110px minmax(0,1fr) 84px;gap:6px 14px;align-items:start;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrrdays>.obrrdy:first-child{border-top:0}
html:not(.ui-nl) .obrrdy[hidden]{display:none}
html:not(.ui-nl) .obrrdl{display:flex;flex-direction:column;gap:2px;color:var(--cl-ink2);font-size:14.5px}html:not(.ui-nl) .obrrdl b{color:var(--ink);font-weight:600}
html:not(.ui-nl) .obrrdm{display:flex;flex-direction:column;gap:3px;min-width:0}html:not(.ui-nl) .obrrdt{display:flex;align-items:center;gap:8px;flex-wrap:wrap}html:not(.ui-nl) .obrrdt b{font-weight:600;color:var(--ink)}
/* FX1 · F5: "Change" sits at the row's top right; open, its panel is a full row under the day with its own grid (never inside the day's column) */
html:not(.ui-nl) .obrchgd{display:contents}
html:not(.ui-nl) .obrchgd[open]{display:block;grid-column:1/-1;min-width:0}
html:not(.ui-nl) .obrchgd>summary{position:absolute;top:10px;right:0}
html:not(.ui-nl) .obrchgp{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border-radius:14px;background:var(--soft);min-width:0}
html:not(.ui-nl) .obrchgp>.pchk{margin:0}
html:not(.ui-nl) .obrchgr{align-items:end}
html:not(.ui-nl) .obrrow2>.gfld{align-content:start}
html:not(.ui-nl) .obrchgr>*{min-width:0}
html:not(.ui-nl) .obrchgr .dtpf{margin:0;min-width:0}
html:not(.ui-nl) .obrchgr .gfld>select,html:not(.ui-nl) .obrchgr .gfld>input{width:100%;min-width:0}
html:not(.ui-nl) .obrrow2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html:not(.ui-nl) .obrrow3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;align-items:end}
html:not(.ui-nl) :is(.obrrow2,.obrrow3,.obrchgp,.obrownf,.obrrolepick,.obreval,.obrcopyc,.obrstart,.obrq2) .gfld{display:grid;gap:6px;margin:0;min-width:0}
html:not(.ui-nl) :is(.obrrow2,.obrrow3,.obrchgp,.obrownf,.obreval,.obrcopyc,.obrstart,.obrq2) .gfld>span{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrskip{grid-column:1/-1}html:not(.ui-nl) .obrskip[hidden]{display:none}
html:not(.ui-nl) .obrrdy.extra .obrrdl b{color:var(--on-accent-soft)}
/* Copy to new dates */
html:not(.ui-nl) .obrcopyh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}html:not(.ui-nl) .obrcopyh>*{height:48px;margin:0;display:flex;align-items:center}html:not(.ui-nl) .obrcopyh .obrinl>select{min-width:136px;width:auto}
html:not(.ui-nl) .obrinl{display:flex!important;align-items:center;gap:8px}html:not(.ui-nl) .obrinl>span{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrcopyr{display:grid;grid-template-columns:32px minmax(0,1fr) minmax(170px,210px);gap:8px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrcopyhd{border-top:0;padding:0;font-size:13.5px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrcopyn{display:flex;flex-direction:column;gap:2px;min-width:0}html:not(.ui-nl) .obrcopyn b{font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrcopyn small{color:var(--cl-ink2);font-size:14px}
html:not(.ui-nl) .obrcopyd{display:flex;flex-direction:column;gap:4px;min-width:0}html:not(.ui-nl) .obrcopyd .dtpf .nlwl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
html:not(.ui-nl) .obrcopyw{color:var(--cl-ink2);font-size:13.5px}
html:not(.ui-nl) .obrcopyr.clash .obrcopyn b,html:not(.ui-nl) .obrcopyr.clash .obrcopyn small{color:var(--muted)}html:not(.ui-nl) .obrcopyr.clash .obrcopyw{color:var(--bad);font-weight:600}
html:not(.ui-nl) .obrcopyr.clash .nlw{box-shadow:inset 0 0 0 1.5px var(--bad)}
html:not(.ui-nl) .obrtick{display:inline-flex;align-items:center;gap:6px;cursor:pointer;min-height:32px}
html:not(.ui-nl) .obrtick input{width:20px;height:20px;margin:0}
/* the requirement drawer */
html:not(.ui-nl) .obrrc{display:flex;flex-direction:column;gap:12px;padding:16px;border:1px solid var(--cl-line);border-radius:18px;background:var(--soft)}
html:not(.ui-nl) .obrrc h4{display:flex;align-items:center;gap:10px;margin:0;font-size:16px;font-weight:600;color:var(--ink)}
html:not(.ui-nl) .obrrc h4 svg.obic{width:32px;height:32px;padding:7px;border-radius:9px;background:var(--card);color:var(--on-accent-soft)}
html:not(.ui-nl) .obrrc>p{margin:0}
html:not(.ui-nl) .obrchips{display:flex;flex-wrap:wrap;gap:8px}
html:not(.ui-nl) .obrpick{position:relative;display:inline-flex;cursor:pointer}
html:not(.ui-nl) .obrpick input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obrpick span{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:4px 14px;border-radius:999px;background:var(--card);border:1px solid var(--cl-line);color:var(--ink);font-weight:600;font-size:14.5px}
@media(max-width:820px){ html:not(.ui-nl) .obrpick span{min-height:44px} }
html:not(.ui-nl) .obrpick span::before{content:"+";font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrpick input:checked+span{background:linear-gradient(180deg,var(--btn-top),var(--btn));border-color:transparent;color:var(--on-btn)}html:not(.ui-nl) .obrpick input:checked+span::before{content:"\2713";color:var(--on-btn)}
html:not(.ui-nl) .obrpick input:focus-visible+span{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obrpick.had span{background:transparent;color:var(--muted);cursor:default}html:not(.ui-nl) .obrpick.had span::before{content:"\2713"}
html:not(.ui-nl) .obrfor{display:flex;align-items:center;gap:8px 10px;flex-wrap:wrap}
html:not(.ui-nl) .obrforl{font-size:14px;font-weight:600;color:var(--muted);min-width:24px}
html:not(.ui-nl) .obrseg{display:inline-flex;padding:3px;border-radius:999px;background:var(--cl-line);gap:2px}
html:not(.ui-nl) .obrseg label{position:relative;cursor:pointer}html:not(.ui-nl) .obrseg input{position:absolute;opacity:0;width:1px;height:1px}
html:not(.ui-nl) .obrseg span{display:inline-flex;align-items:center;min-height:34px;padding:2px 14px;border-radius:999px;color:var(--cl-ink2);font-weight:600;font-size:14px;white-space:nowrap}
html:not(.ui-nl) .obrseg input:checked+span{background:var(--card);color:var(--ink);box-shadow:0 1px 3px rgba(15,23,42,.10)}
html:not(.ui-nl) .obrseg input:focus-visible+span{outline:2px solid var(--btn);outline-offset:1px}
html:not(.ui-nl) .obrforr{display:none;flex-wrap:wrap;gap:6px}
html:not(.ui-nl) .obrfor:has(input[value=some]:checked) .obrforr{display:inline-flex}
html:not(.ui-nl) .obrforr .obrtick{padding:2px 10px;border-radius:999px;background:var(--card);border:1px solid var(--cl-line);font-size:14px;font-weight:600}
html:not(.ui-nl) .obrownf{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--cl-line)}html:not(.ui-nl) .obrownf[hidden]{display:none}
html:not(.ui-nl) .obrownh{margin:0;font-weight:600;color:var(--ink)}
/* the pay line and its drawer (no money words in CSS: it ships on the public pages too) */
html:not(.ui-nl) .obrlock{display:flex;gap:10px;align-items:flex-start;margin:0;padding:12px 14px;border-radius:14px;background:var(--soft);color:var(--ink);font-size:14.5px}
html:not(.ui-nl) .obrtiles{border:0;margin:0;padding:0;display:grid;gap:10px;min-width:0}html:not(.ui-nl) .obrtiles legend{padding:0;margin-bottom:8px;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrtiles.two{grid-template-columns:repeat(2,minmax(0,1fr))}
html:not(.ui-nl) .obrtile2{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--cl-line);border-radius:14px;cursor:pointer;background:var(--card)}
html:not(.ui-nl) .obrtile2 input{margin:3px 0 0;flex:none;width:18px;height:18px}
html:not(.ui-nl) .obrtile2 b{display:block;font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrtile2 small{display:block;color:var(--cl-ink2);margin-top:2px;font-size:14px}
html:not(.ui-nl) .obrtile2:has(input:checked){border-color:transparent;background:var(--accent-soft)}
html:not(.ui-nl) .obrtile2.dis{opacity:.6;cursor:default}
html:not(.ui-nl) .obrdiff{display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrdiff>summary{color:var(--accent);font-weight:600;cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;min-height:36px}html:not(.ui-nl) .obrdiff>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obrdiff[open]{gap:12px}
/* the first-time questions and the template menu */
html:not(.ui-nl) .obrstart{display:flex;flex-direction:column;gap:20px}
html:not(.ui-nl) .obrstart>p{margin:-14px 0 0}
html:not(.ui-nl) .obrq{border:0;margin:0;padding:18px 0 0;border-top:1px solid var(--cl-line);display:flex;flex-direction:column;gap:12px;min-width:0}
html:not(.ui-nl) .obrq legend{float:left;width:100%;display:flex;flex-direction:column;gap:2px;padding:0;margin-bottom:12px;font-size:18px;font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrq legend+*{clear:both}html:not(.ui-nl) .obrq legend small{font-size:14px;color:var(--accent);font-weight:600}
html:not(.ui-nl) .obrq2{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);gap:12px 16px;align-items:start}
html:not(.ui-nl) .obrtplm{min-width:min(380px,calc(100vw - 32px))}
html:not(.ui-nl) .obrcopyc,html:not(.ui-nl) .obreval{display:flex;flex-direction:column;gap:10px;padding:12px 16px}
html:not(.ui-nl) .obrevm{min-width:min(340px,calc(100vw - 32px))}
html:not(.ui-nl) .obrmh{margin:6px 16px 2px;font-size:13px;font-weight:600;color:var(--muted)}
/* the roster */
html:not(.ui-nl) .obrdaytabs{display:flex;gap:4px;padding:4px;border-radius:14px;background:var(--soft);overflow-x:auto;scrollbar-width:none}
html:not(.ui-nl) .obrdaytabs::-webkit-scrollbar{display:none}
html:not(.ui-nl) .obrdaytabs a{display:flex;flex-direction:column;gap:1px;padding:10px 14px;border-radius:10px;text-decoration:none;color:var(--cl-ink2);flex:1 0 auto;min-width:130px}
html:not(.ui-nl) .obrdaytabs a b{font-weight:600;color:var(--ink);white-space:nowrap}html:not(.ui-nl) .obrdaytabs a small{font-size:13px;white-space:nowrap}
html:not(.ui-nl) .obrdaytabs a.on{background:var(--card);box-shadow:0 1px 3px rgba(15,23,42,.10)}
html:not(.ui-nl) .obrdayh{margin:16px 0 6px}html:not(.ui-nl) .obrdayh h3{margin:0 0 4px}
html:not(.ui-nl) .obrrost{display:flex;flex-direction:column}
html:not(.ui-nl) .obrrostr{display:grid;grid-template-columns:minmax(200px,1.6fr) 160px minmax(140px,1fr) 44px;align-items:center;gap:8px 14px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .obrrosth{font-size:13.5px;font-weight:600;color:var(--muted);padding-top:4px}
html:not(.ui-nl) .obrpp{display:flex;align-items:center;gap:12px;min-width:0}html:not(.ui-nl) .obrpp>span:last-child{display:flex;flex-direction:column;gap:2px;min-width:0}
html:not(.ui-nl) .obrpp b{font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrpp small{color:var(--cl-ink2);font-size:14px;overflow-wrap:anywhere}
html:not(.ui-nl) .obrbad,html:not(.ui-nl) .obrok{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:14.5px}html:not(.ui-nl) .obrbad{color:var(--bad)}html:not(.ui-nl) .obrok{color:var(--ok)}
html:not(.ui-nl) .obrbad svg.obic,html:not(.ui-nl) .obrok svg.obic{width:16px;height:16px}
html:not(.ui-nl) .obrrm{display:flex;justify-content:flex-end}html:not(.ui-nl) .obrrm>details>summary{list-style:none}html:not(.ui-nl) .obrrm>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .obrrfoot{display:flex;align-items:center;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-top:12px;padding-top:12px;border-top:1px solid var(--cl-line)}html:not(.ui-nl) .obrrfoot p{margin:0}
html:not(.ui-nl) .obradd .obrwho li>span:last-child{text-align:right}
/* the placement card (OBRAssign) */
html:not(.ui-nl) .obrbook{display:flex;gap:10px;align-items:flex-start;margin:0 0 10px;padding:12px 14px;border-radius:14px;background:var(--accent-soft);color:var(--ink);font-size:15px}
html:not(.ui-nl) .obrbook svg.obic{color:var(--on-accent-soft);margin-top:2px}
html:not(.ui-nl) .obrthen{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 0;padding:10px 14px;border-radius:14px;border:1px dashed var(--cl-line2)}
/* narrow: a drawer, a tablet, a phone */
@container obdp (max-width:599px){
  html:not(.ui-nl) .obrcalw,html:not(.ui-nl) .obrrow2,html:not(.ui-nl) .obrrow3{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .obrrdy{grid-template-columns:minmax(0,1fr) auto}
  html:not(.ui-nl) .obrrdl{grid-column:1/-1;flex-direction:row;gap:8px;padding-right:84px}
  html:not(.ui-nl) .obrcopyr{grid-template-columns:32px minmax(0,1fr)}html:not(.ui-nl) .obrcopyd{grid-column:2}
}
/* a computer under 1700px: the place goes under the day's name (the long names of places fit, the owner's F4) */
/* OBC1 · 172px, not 158: "12:00" was cut to "12:0" in the Ends box (the AM and PM pair takes the rest) */
@media(min-width:1181px) and (max-width:1699px){
  html:not(.ui-nl) .obrdtr{grid-template-columns:60px minmax(160px,1fr) 172px 172px repeat(var(--obrroles,1),minmax(60px,96px)) 44px}
  html:not(.ui-nl) .obrdth>:nth-child(5){display:none}
  html:not(.ui-nl) .obrdtr:not(.obrdth) .obrdc4{grid-column:2/5;grid-row:2}
}
/* FX1 · F7: five roles or more stack the table on any screen (the role ticks become chips under each day) */
html:not(.ui-nl) .obrdtab.many .obrdtr input[name^="d_start"],html:not(.ui-nl) .obrdtab.many .obrdtr input[name^="d_end"]{min-width:56px}
html:not(.ui-nl) .obrdtab.many .obrdtr:not(.obrdth){grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;padding:14px 0}
html:not(.ui-nl) .obrdtab.many .obrdth{display:none}
html:not(.ui-nl) .obrdtab.many .obrdtr .obrdc0{grid-column:1/-1}html:not(.ui-nl) .obrdtab.many .obrdtr .obrdc1,html:not(.ui-nl) .obrdtab.many .obrdtr .obrdc4{grid-column:span 2;grid-row:auto}
html:not(.ui-nl) .obrdtab.many .obrdtr .obrcl,html:not(.ui-nl) .obrdtab.many .obrdtr .dtpf .nlwl{position:static;width:auto;height:auto;clip:auto;font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .obrdtab.many .obrdtick{justify-content:flex-start;min-height:40px}
html:not(.ui-nl) .obrdtab.many .obrdtick .obrtk{display:none}
html:not(.ui-nl) .obrdtab.many .obrtkl{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:2px 14px;border-radius:999px;border:1px solid var(--cl-line);font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap}
html:not(.ui-nl) .obrdtab.many .obrtkl::before{content:"+";color:var(--muted)}
html:not(.ui-nl) .obrdtab.many .obrdtick input:checked~.obrtkl{background:linear-gradient(180deg,var(--btn-top),var(--btn));border-color:transparent;color:var(--on-btn)}html:not(.ui-nl) .obrdtab.many .obrdtick input:checked~.obrtkl::before{content:"\2713";color:var(--on-btn)}
html:not(.ui-nl) .obrdtab.many .obrdtick input:focus-visible~.obrtkl{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) .obrdtab.many .obrdcm{grid-column:-2;grid-row:1;justify-content:flex-end}
/* a phone or a tablet: every control a finger's size */
@media(max-width:820px){ html:not(.ui-nl) .obrx,html:not(.ui-nl) .obrchg,html:not(.ui-nl) .obrdiff>summary{min-height:44px;min-width:44px} html:not(.ui-nl) .obrx{width:44px;height:44px} html:not(.ui-nl) .obrstep2 .gicb{width:44px;height:44px;min-height:44px} html:not(.ui-nl) .obrstep2 input{height:44px;line-height:44px} }
@media(max-width:1180px){
  html:not(.ui-nl) .obrptr{grid-template-columns:40px minmax(0,1fr) auto}html:not(.ui-nl) .obrptr>:nth-child(4),html:not(.ui-nl) .obrptr>:nth-child(5){grid-column:2/-1}html:not(.ui-nl) .obrpth{display:none}
  html:not(.ui-nl) .obrdtr input[name^="d_start"],html:not(.ui-nl) .obrdtr input[name^="d_end"]{min-width:56px}
  html:not(.ui-nl) .obrdtr:not(.obrdth){grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 12px;padding:14px 0}
  html:not(.ui-nl) .obrdth{display:none}
  html:not(.ui-nl) .obrdtr .obrdc0{grid-column:1/-1}html:not(.ui-nl) .obrdtr .obrdc1,html:not(.ui-nl) .obrdtr .obrdc4{grid-column:span 2}
  html:not(.ui-nl) .obrdtr .obrcl,html:not(.ui-nl) .obrdtr .dtpf .nlwl{position:static;width:auto;height:auto;clip:auto;font-size:14px;font-weight:600;color:var(--muted)}
  html:not(.ui-nl) .obrdtick{justify-content:flex-start;min-height:40px}
  html:not(.ui-nl) .obrdtick .obrtk{display:none}
  html:not(.ui-nl) .obrtkl{display:inline-flex;align-items:center;gap:6px;min-height:38px;padding:2px 14px;border-radius:999px;border:1px solid var(--cl-line);font-weight:600;font-size:14px;color:var(--ink);white-space:nowrap}
  html:not(.ui-nl) .obrtkl::before{content:"+";color:var(--muted)}
  html:not(.ui-nl) .obrdtick input:checked~.obrtkl{background:linear-gradient(180deg,var(--btn-top),var(--btn));border-color:transparent;color:var(--on-btn)}html:not(.ui-nl) .obrdtick input:checked~.obrtkl::before{content:"\2713";color:var(--on-btn)}
  html:not(.ui-nl) .obrdtick input:focus-visible~.obrtkl{outline:2px solid var(--btn);outline-offset:2px}
  html:not(.ui-nl) .obrdcm{grid-column:-2;grid-row:1;justify-content:flex-end}
}
@media(max-width:900px){
  html:not(.ui-nl) .obrrun{grid-template-columns:60px minmax(0,1fr) auto}html:not(.ui-nl) .obrseat{grid-column:2;grid-row:2}html:not(.ui-nl) .obrra{grid-column:3;grid-row:1/3}
  html:not(.ui-nl) .obrptr{grid-template-columns:40px minmax(0,1fr) auto}html:not(.ui-nl) .obrptr>:nth-child(4),html:not(.ui-nl) .obrptr>:nth-child(5){grid-column:2/-1}html:not(.ui-nl) .obrpth{display:none}
  html:not(.ui-nl) .obrrostr{grid-template-columns:minmax(0,1fr) auto}html:not(.ui-nl) .obrrosth{display:none}html:not(.ui-nl) .obrrostr>[role=cell]:nth-child(2),html:not(.ui-nl) .obrrostr>[role=cell]:nth-child(3){grid-column:1;padding-left:52px}html:not(.ui-nl) .obrrm{grid-column:2;grid-row:1}
}
@media(max-width:760px){
  html:not(.ui-nl) .obrcard{padding:18px}html:not(.ui-nl) .obrsteps{padding:2px 18px}
  html:not(.ui-nl) .obrstep{grid-template-columns:32px minmax(0,1fr);gap:0 10px;padding:18px 0}
  html:not(.ui-nl) .obrnum{width:26px;height:26px;font-size:13px}
  html:not(.ui-nl) .obrits{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .obrdayr{grid-template-columns:44px minmax(0,1fr)}html:not(.ui-nl) .obrdr{grid-column:2;justify-content:flex-start}
  html:not(.ui-nl) .obrboxes,html:not(.ui-nl) .obrtiles.two,html:not(.ui-nl) .obrq2{grid-template-columns:minmax(0,1fr)}
  html:not(.ui-nl) .obrwho li{grid-template-columns:minmax(0,1fr)}html:not(.ui-nl) .obrwho li>span:last-child{text-align:left}
  html:not(.ui-nl) .obrdtr:not(.obrdth){grid-template-columns:repeat(2,minmax(0,1fr))}
  html:not(.ui-nl) .obrdtr .obrdc1,html:not(.ui-nl) .obrdtr .obrdc4{grid-column:1/-1}
  html:not(.ui-nl) .obrdsum{display:flex;grid-column:1/-1;align-items:center;gap:10px;width:100%;min-height:44px;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}
  html:not(.ui-nl) .obrdsumt{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}html:not(.ui-nl) .obrdsumt b{font-weight:600;color:var(--ink)}html:not(.ui-nl) .obrdsumt small{color:var(--cl-ink2);font-size:14px}
  html:not(.ui-nl) .obrdchev{color:var(--muted);transition:transform .2s}
  html:not(.ui-nl) .obrdtr.fold>:not(.obrdsum):not(input){display:none}
  html:not(.ui-nl) .obrdtr:not(.fold) .obrdchev{transform:rotate(90deg)}
  html:not(.ui-nl) .obrdtr .obrdc0{display:none}
  html:not(.ui-nl) .obrdcm{grid-row:auto;grid-column:1/-1;justify-content:flex-start}
  html:not(.ui-nl) .obrsave{bottom:8px;flex-wrap:nowrap;padding:10px 12px}html:not(.ui-nl) .obrsave [data-obrchanges]{flex:1 1 auto;min-width:0;font-size:14px}html:not(.ui-nl) .obrsave a.btn{display:none}html:not(.ui-nl) .obrsave .btn{flex:0 0 auto}
  html:not(.ui-nl) .obrrun{grid-template-columns:56px minmax(0,1fr);gap:6px 12px}html:not(.ui-nl) .obrseat{grid-column:2;grid-row:auto}html:not(.ui-nl) .obrra{grid-column:2;grid-row:auto;justify-content:flex-start}
  html:not(.ui-nl) .obrrdy{grid-template-columns:minmax(0,1fr) auto}html:not(.ui-nl) .obrrdl{grid-column:1/-1;flex-direction:row;gap:8px;padding-right:84px}
  html:not(.ui-nl) .obrpay{flex-wrap:wrap}
}/* ===== OB1 · the client's Locations (core/locations_ui.php; §254.13) ===== */
html:not(.ui-nl) .loccard{padding:24px}
html:not(.ui-nl) .locr{display:flex;align-items:center;gap:14px;padding:12px 0;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .locl>.locr:first-child{border-top:0}
html:not(.ui-nl) .locpin{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--warn-bg);color:var(--warn);flex:none}
html:not(.ui-nl) .locpin.ok{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .locpin svg.obic{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
html:not(.ui-nl) .locm{display:flex;flex-direction:column;gap:3px;flex:1;min-width:0}
html:not(.ui-nl) .locl1{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
html:not(.ui-nl) .locl1 b{font-weight:600;color:var(--ink)}
html:not(.ui-nl) .loctag{display:inline-flex;align-items:center;gap:4px;min-height:24px;padding:2px 10px;border-radius:999px;background:var(--soft);color:var(--cl-ink2);font-size:13px;font-weight:600}
html:not(.ui-nl) .loctag.on{background:var(--accent-soft);color:var(--on-accent-soft)}
html:not(.ui-nl) .loctx{border:0;background:none;padding:0;width:18px;height:18px;display:grid;place-items:center;color:inherit;cursor:pointer}
html:not(.ui-nl) .loctx svg.obic{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round}
html:not(.ui-nl) .locmut{color:var(--muted)}
html:not(.ui-nl) .locwarn{color:var(--warn);font-weight:600}
html:not(.ui-nl) .loca{flex:none}
html:not(.ui-nl) .loca>details>summary{list-style:none}html:not(.ui-nl) .loca>details>summary::-webkit-details-marker{display:none}
html:not(.ui-nl) .lochid{opacity:.7}
html:not(.ui-nl) .loctagf{display:flex;flex-direction:column;gap:6px}
html:not(.ui-nl) .loctagl{font-size:14px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .loctagb{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 10px;border-radius:12px;background:var(--cl-field);box-shadow:inset 0 0 0 1px var(--cl-fedge);min-height:44px;box-sizing:border-box}
html:not(.ui-nl) .loctagin{flex:1 1 200px;min-width:0;border:0;background:transparent;font:inherit;padding:4px 2px;box-shadow:none}
html:not(.ui-nl) .loctagb .loctagin{border:0!important;box-shadow:none!important;background:transparent!important;min-height:32px;padding:4px 2px!important}
html:not(.ui-nl) .loctagin:focus{outline:none}
html:not(.ui-nl) .locpinbox{display:flex;flex-direction:column;gap:6px}
html:not(.ui-nl) .locaddr .abox{margin:0}html:not(.ui-nl) .locaddr :is(.abq,.abgrid label){display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--muted)}html:not(.ui-nl) .locaddr .abgrid{gap:12px}
html:not(.ui-nl) .loctags{margin-top:18px;padding-top:14px;border-top:1px solid var(--cl-line)}
html:not(.ui-nl) .loctags h3{margin:0 0 4px;font-size:16px;font-weight:600}
html:not(.ui-nl) .loctr{gap:10px}html:not(.ui-nl) .loctr .obra{margin-left:auto}
html:not(.ui-nl) .loctagop{display:flex;align-items:flex-end;gap:8px;padding:8px 16px;margin:0;flex-wrap:wrap}
html:not(.ui-nl) .loctagop .gfld{display:grid;gap:4px;margin:0;flex:1 1 160px}html:not(.ui-nl) .loctagop .gfld span{font-size:13px;font-weight:600;color:var(--muted)}
@media(max-width:820px){
  html:not(.ui-nl) .loccard{padding:18px}
  html:not(.ui-nl) .locr{align-items:flex-start}
}/* ===== CL4b part B · the Settings search ===== */
html:not(.ui-nl) .setsrch{position:relative;margin:0 0 12px}
html:not(.ui-nl) .setsrch .sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
html:not(.ui-nl) .setsrch-l{display:flex;align-items:center;gap:8px;min-height:46px;padding:0 12px;border-radius:14px;background:var(--cl-card);box-shadow:var(--sh-card);cursor:text}
html:not(.ui-nl) .setsrch-l .ic{width:18px;height:18px;flex:none;color:var(--muted)}
html:not(.ui-nl) .setsrch-l input[type=search]{flex:1;min-width:0;min-height:44px;margin:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;font-size:16px;color:var(--ink)}
html:not(.ui-nl) .setsrch-l input[type=search]:focus{outline:none}
html:not(.ui-nl) .setsrch-l:focus-within{box-shadow:0 0 0 3px var(--ring),var(--sh-card)}
html:not(.ui-nl) .setsrch-l kbd{flex:none;padding:1px 7px;border-radius:6px;background:var(--surface-2);color:var(--muted);font-size:12px;font-family:inherit}
html:not(.ui-nl) .setsrch-pop{position:absolute;z-index:60;left:0;top:calc(100% + 6px);width:min(520px,calc(100vw - 32px));max-height:min(70vh,560px);overflow:auto;padding:6px;border-radius:16px;background:var(--surface);box-shadow:0 18px 40px -16px var(--shade2,rgba(20,40,80,.35)),var(--sh-card)}
html:not(.ui-nl) .setsrch-pop[hidden]{display:none}
html:not(.ui-nl) .setsrch-g{margin:8px 10px 4px;font-size:13px;font-weight:600;color:var(--muted)}
html:not(.ui-nl) .setsrch-pop a{display:block;padding:9px 12px;border-radius:10px;color:var(--ink);text-decoration:none}
html:not(.ui-nl) .setsrch-pop a b{font-weight:600}
html:not(.ui-nl) .setsrch-pop a mark{background:transparent;color:var(--accent);font-weight:700}
html:not(.ui-nl) .setsrch-pop a small{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:var(--muted)}
html:not(.ui-nl) .setsrch-pop a:hover,html:not(.ui-nl) .setsrch-pop a.on{background:var(--accent-soft)}
html:not(.ui-nl) .setsrch-pop .setsrch-none{margin:10px 12px;font-size:15px;color:var(--muted)}
html:not(.ui-nl) .setsrch-pop .setsrch-all{margin-top:4px;font-weight:600;color:var(--accent)}
html:not(.ui-nl) .sdhit{border-radius:12px;box-shadow:0 0 0 4px var(--ring)!important;background-color:var(--accent-soft)!important;transition:box-shadow .3s,background-color .3s}
html:not(.ui-nl) .setres{display:flex;flex-direction:column;gap:2px}
html:not(.ui-nl) .setres a{display:block;padding:12px 14px;border-radius:12px;color:var(--ink);text-decoration:none}
html:not(.ui-nl) .setres a:hover{background:var(--accent-soft)}
html:not(.ui-nl) .setres a small{display:block;font-size:14px;color:var(--muted)}
@media(min-width:1100px){
  /* the box shares the side menu's cell (a row of its own would be as tall as the first card); both stay in view */
  html:not(.ui-nl) .main:has(> nav.setsub) > .setsrch{grid-column:1;grid-row:2;align-self:start;position:sticky;top:calc(var(--hh) + var(--sat) + 16px);z-index:4;margin:0}
  html:not(.ui-nl) .main:has(> .setsrch) > nav.sectabs.setsub{margin-top:58px;top:calc(var(--hh) + var(--sat) + 74px)}
}
@media(max-width:760px){
  html:not(.ui-nl) .setsrch-l kbd{display:none}
  html:not(.ui-nl) .setsrch-pop{position:fixed;left:8px;right:8px;top:auto;bottom:8px;width:auto;max-height:62vh}
}
@media(prefers-reduced-motion:reduce){ html:not(.ui-nl) .sdhit{transition:none} }/* ===== FX1 · the owner's findings of 13 Oct 2026 ===== */
/* F1, F2 · the client's Home and Bookings as wide as Orientation on a computer (up to 1320px; two columns from 1100px) */
/* body.cport: the CLIENT portal only; the Career Profile's Home is body.v-home too (the review's census caught the leak: its Good fits row grew) */
@media(min-width:821px){ html:not(.ui-nl) body.cport.v-home .appmain .pw,html:not(.ui-nl) body.cport.v-orders .appmain .pw{max-width:1320px} }
html:not(.ui-nl) .chome.chwide{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
html:not(.ui-nl) .chmain,html:not(.ui-nl) .chside{display:flex;flex-direction:column;gap:18px;min-width:0}
html:not(.ui-nl) :is(.chmain,.chside)>:is(.pc,.optcs,div){margin:0}
@media(min-width:1100px){ html:not(.ui-nl) .chome.chwide.two{grid-template-columns:minmax(0,1.55fr) minmax(320px,1fr)} }
/* under 1100px one column in the order Home always had: orientation first, the renewal question, the orders, then the two ways to hire */
@media(max-width:1099px){ html:not(.ui-nl) .chwide>:is(.chmain,.chside){display:contents} html:not(.ui-nl) .chwide .obchome{order:-1} }
html:not(.ui-nl) .ordwide{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}
html:not(.ui-nl) .ordside,html:not(.ui-nl) .ordmain{display:flex;flex-direction:column;gap:14px;min-width:0}
html:not(.ui-nl) .ordside>.pc,html:not(.ui-nl) .ordmain>.pc{margin:0}
html:not(.ui-nl) .ordmain>.ghead{margin:0}
@media(min-width:1100px){
  html:not(.ui-nl) .ordwide.two{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr)}
  html:not(.ui-nl) .ordwide.two>.ordside{grid-column:2;grid-row:1}
  html:not(.ui-nl) .ordwide.two>.ordmain{grid-column:1;grid-row:1}
  html:not(.ui-nl) .ordmain>.olist.fgrid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
}
/* F12 · the bell: what is new, then the last few read (greyed), Clear all and an X on each; cleared ones stay on "See all" */
html:not(.ui-nl) .fxbell{margin:0;padding:0;background:transparent;box-shadow:none;border:0}
html:not(.ui-nl) .fxbnone{margin:6px 0;color:var(--muted)}
html:not(.ui-nl) .fxbclr{display:flex;justify-content:flex-end;margin:0 0 6px}
html:not(.ui-nl) .fxbl{list-style:none;margin:0;padding:0}
html:not(.ui-nl) .fxbi{display:flex;align-items:flex-start;gap:6px;border-top:1px solid var(--line)}
html:not(.ui-nl) .fxbi:first-child{border-top:0}
html:not(.ui-nl) .fxbi>a{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px;padding:10px 4px;color:var(--ink);text-decoration:none}
html:not(.ui-nl) .fxbi>a strong{font-weight:600;overflow-wrap:anywhere}html:not(.ui-nl) .fxbi>a span{color:var(--muted);font-size:14px;overflow-wrap:anywhere}html:not(.ui-nl) .fxbi>a em{font-style:normal;color:var(--muted);font-size:13px}
html:not(.ui-nl) .fxbi.new>a strong::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent,var(--navy));margin-right:8px;vertical-align:middle}
html:not(.ui-nl) .fxbi.read>a{opacity:.62}
html:not(.ui-nl) .fxbi>form{margin:0;flex:none}
html:not(.ui-nl) .fxbx,html:not(.ui-nl) .npx{display:inline-grid;place-items:center;width:40px;height:40px;margin-top:4px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
html:not(.ui-nl) :is(.fxbx,.npx):hover{background:var(--soft);color:var(--ink)}
html:not(.ui-nl) :is(.fxbx,.npx):focus-visible{outline:2px solid var(--btn);outline-offset:2px}
html:not(.ui-nl) :is(.fxbx,.npx) svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
html:not(.ui-nl) .fxbi>form>button.fxbx,html:not(.ui-nl) .npwrap>button.npx{background:transparent;box-shadow:none;border:0;min-height:0}
html:not(.ui-nl) .fxbi.gone,html:not(.ui-nl) .npwrap.gone{display:none}
html:not(.ui-nl) .npwrap{display:flex;align-items:flex-start;gap:4px}
html:not(.ui-nl) .npwrap>.npit{flex:1 1 auto;min-width:0}
html:not(.ui-nl) .npwrap.read>.npit{opacity:.62}
html:not(.ui-nl) .npfoot{display:flex;justify-content:flex-end;padding:8px 4px 2px}
@media(max-width:820px){ html:not(.ui-nl) :is(.fxbx,.npx){width:44px;height:44px} }html.ui-nl{
  --bg:#F3F5F9; --surface:#FFFFFF; --surface-2:#F6F8FB; --surface-3:#ECEFF4;
  --b1:#DCE5F5; --b2:#E5ECF7; --b3:#E5ECF7;
  --ink:#1A2332; --muted:#465062; --faint:#5B6576;
  /* L10a · larger, softer text: every size up about 8% (the office 16px, small print 14px at least), headings as they were */
  --fs:16px; --fs-sm:14.5px; --fs-xs:14px; --fs-2xs:14px; --fs-lg:18.5px; --fs-body:16.5px; --fs-row:17px; --fs-card:19.5px;
  /* L10 · Instrument Sans for text: the mono labels, numbers and pay of the glass look read in the text face (numbers keep
     their even widths through font-variant-numeric) */
  --mono:"Instrument Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --accent:#3E6DB5; --accent-top:#5584C6; --accent-soft:rgba(62,109,181,.09); --on-accent-soft:#2D5899;
  --navy:#3E6DB5; --navy-d:#2D5899; --navy-l:#E8EDF5; --navy-xl:#F1F4F9; --info:#2D5899; --info-bg:#E8EDF5;
  --nl-btn:rgba(31,99,201,.11); --nl-btn-h:rgba(31,99,201,.17); --nl-on-btn:#154A99;
  --nl-btn2:rgba(255,255,255,.78); --nl-btn2-ring:rgba(14,21,34,.12); --nl-on-btn2:#3B4556;
  --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn);
  --soft:#EBEEF3; --soft-2:#E1E5EC; --on-soft:#3B4556;
  --nl-line:rgba(14,21,34,.16); --nl-line-2:rgba(14,21,34,.10); --divider:rgba(14,21,34,.16);
  --nl-glass:linear-gradient(155deg,rgba(255,255,255,.84),rgba(255,255,255,.56));
  --nl-glass-sh:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.6),0 26px 50px -32px rgba(20,40,80,.5);
  --nl-bar:linear-gradient(155deg,rgba(255,255,255,.985),rgba(255,255,255,.955));
  --nl-head:#F3F5F9;   /* NL3.1 · solid: a bar that stays at the top never lets the page show through (the owner, 9 Oct 2026) */
  --nl-on-accent:#FFFFFF; --nl-on-solid:#FFFFFF;
  --nl-drag-glass:linear-gradient(160deg,rgba(255,255,255,.74),rgba(255,255,255,.52)); --nl-drawer-sh:rgba(14,21,34,.45);
  --nl-bar-sh:inset 0 1px 0 #FFFFFF,inset 0 0 0 1px rgba(255,255,255,.6),0 18px 40px -22px rgba(20,40,80,.45);
  --nl-ok:#1E6B3D; --nl-warn:#8A5300; --nl-bad:#A3271B;
  /* NL3.1 · L16 THE DEEP BLUE, accents only (the owner, 9 Oct 2026: "add more of this blue color variant ... to add some more
     contrast to the platform and probably more life"): the chosen or current item, preview tags, progress rings, key numbers.
     Never a main button, never a large area. --nl-deep the fill (white words on it), --nl-deep-ink as text or a ring stroke */
  --nl-deep:linear-gradient(160deg,#2E72DA,#0B4FB3); --nl-deep-ink:#0B4FB3; --nl-deep-sh:2px 8px 18px -10px rgba(11,79,179,.7); --nl-on-deep:#FFFFFF;
  --nl-deep-soft:rgba(11,79,179,.07); --nl-deep-soft-h:rgba(11,79,179,.13);
  /* NL3.1 · L18 the fill-out well, the status tiles (complete green, missing sand, waiting grey), the save glow, the amber nudge */
  --nl-well:rgba(255,255,255,.86); --nl-well-f:#FFFFFF; --nl-well-sh:0 1px 2px rgba(14,21,34,.05),3px 8px 18px -16px rgba(20,40,80,.4);
  --nl-well-sh-f:0 1px 2px rgba(14,21,34,.06),5px 16px 30px -16px rgba(20,40,80,.5); --nl-key:#1A2332; --nl-val:#2A3446;
  --nl-t-ok:#E3F1E8; --nl-t-ok-ink:#1E6B3D; --nl-t-todo:#F4EAD9; --nl-t-todo-ink:#7A5528; --nl-t-wait:#ECEEF2; --nl-t-wait-ink:#5B6576;
  --nl-t-blue:#E3EAF5; --nl-t-blue-ink:#2D5899; --nl-t-slate:#E6E8EE; --nl-t-slate-ink:#3B4556;
  --nl-glow-ok:rgba(227,241,232,.9); --nl-glow-chg:rgba(242,226,196,.9); --nl-need:#F8E9D2; --nl-dot-todo:#B7791F; --nl-dot-bad:#C2410C; --nl-dot-wait:#8B93A1;
  --nl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='%23E3F1E8'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%231E6B3D' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-pin-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6'%3E%3Cpath d='M12 21s-6.5-6.2-6.5-11a6.5 6.5 0 0 1 13 0c0 4.8-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E");
  --nl-solid:#FFFFFF; --nl-pop-sh:0 0 0 1px rgba(14,21,34,.06),0 22px 44px -18px rgba(20,40,80,.38); --nl-ok-line:#9CC7AE; --nl-ring-ok:#3E8E5E;
  --nl-map:linear-gradient(160deg,#E8EEF7,#F3F0EA); --nl-map-road:#FFFFFF; --nl-pin:#3E6DB5;
  --nl-pv-banner:radial-gradient(160px 120px at 85% 20%,rgba(242,232,216,.95),rgba(242,232,216,0) 70%),radial-gradient(200px 140px at 15% 90%,rgba(197,214,240,.9),rgba(197,214,240,0) 70%),linear-gradient(135deg,#DCE5F5,#EEF2F9);
  --ok:#1E6B3D; --warn:#8A5300; --bad:#A3271B; --live:#1E6B3D;
  --nl-gut:0px; --nl-badge:#D92D20; --nl-on-badge:#FFFFFF;
  /* NL1.1 · the gap review (G1, G8a, G12): the round pale chevron of a choice, the field tints, the hint, the dashed drop zone,
     the icon button, the Ask button, the danger tint */
  --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(31,99,201,.11)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23154A99' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-hint:#98A1AF; --nl-tint-h:rgba(14,21,34,.04); --nl-tint-f:rgba(62,109,181,.09); --nl-label:#5B6576; --nl-label-f:#2D5899; --nl-dz:rgba(14,21,34,.24);
  --nl-icb:rgba(255,255,255,.85); --nl-icb-ring:rgba(14,21,34,.08); --nl-fab:linear-gradient(160deg,#F1F5FC,#DDE7F7); --nl-dng:rgba(217,45,32,.10); --nl-dng-h:rgba(217,45,32,.16);
  --nl-toast-sh:0 0 0 1px rgba(14,21,34,.08),0 18px 40px -18px rgba(20,40,80,.45); --nl-skel:rgba(14,21,34,.08);
  --av-1:var(--accent-top); --av-2:var(--accent); --lt1:var(--accent-top); --lt2:var(--accent); --lt3:var(--accent);
  --glass-sh:none; --sh-card:none;
}
@media(prefers-color-scheme:dark){ html.ui-nl:not([data-theme="light"]){
  --bg:#0B1019; --surface:#131A26; --surface-2:#18202E; --surface-3:#1E2736;
  --b1:#13213A; --b2:#111C31; --b3:#121E34;
  --ink:#E8EDF5; --muted:#B0BACB; --faint:#8F9AAD;
  --accent:#8DAFE3; --accent-top:#A6C2EC; --accent-soft:rgba(141,175,227,.13); --on-accent-soft:#C3D5F3;
  --navy:#8DAFE3; --navy-d:#C3D5F3; --navy-l:#1B2638; --navy-xl:#151E2D; --info:#C3D5F3; --info-bg:#1B2638;
  --nl-btn:rgba(141,175,227,.16); --nl-btn-h:rgba(141,175,227,.24); --nl-on-btn:#D3E1F7; --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn);   /* NL3 · the dark blocks of Classic out-rank html.ui-nl (0,2,0 > 0,1,1): a plain <button> was solid blue in dark */
  --nl-btn2:rgba(255,255,255,.06); --nl-btn2-ring:rgba(255,255,255,.14); --nl-on-btn2:#C9D2E0;
  --soft:#1B2331; --soft-2:#232D3D; --on-soft:#C9D2E0;
  --nl-line:rgba(255,255,255,.14); --nl-line-2:rgba(255,255,255,.09); --divider:rgba(255,255,255,.14);
  --nl-glass:linear-gradient(155deg,rgba(32,42,60,.92),rgba(22,30,45,.78));
  --nl-glass-sh:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(255,255,255,.05),0 26px 50px -32px rgba(0,0,0,.8);
  --nl-bar:linear-gradient(155deg,rgba(28,37,53,.99),rgba(21,28,41,.97));
  --nl-head:#0B1019;
  --nl-on-accent:#0B1019; --nl-on-solid:#FFFFFF;
  --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(141,175,227,.16)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23D3E1F7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-hint:#6F7A8C; --nl-tint-h:rgba(255,255,255,.05); --nl-tint-f:rgba(141,175,227,.13); --nl-label:#8F9AAD; --nl-label-f:#C3D5F3; --nl-dz:rgba(255,255,255,.26);
  --nl-icb:rgba(255,255,255,.06); --nl-icb-ring:rgba(255,255,255,.12); --nl-fab:linear-gradient(160deg,#1E2A3D,#18233A); --nl-dng:rgba(255,120,110,.14); --nl-dng-h:rgba(255,120,110,.22);
  --nl-toast-sh:0 0 0 1px rgba(255,255,255,.08),0 18px 40px -18px rgba(0,0,0,.7); --nl-skel:rgba(255,255,255,.08);
  --nl-drag-glass:linear-gradient(160deg,rgba(19,26,38,.80),rgba(19,26,38,.58)); --nl-drawer-sh:rgba(0,0,0,.6);
  --nl-bar-sh:inset 0 1px 0 rgba(255,255,255,.07),0 18px 40px -22px rgba(0,0,0,.7);
  --nl-deep:linear-gradient(160deg,#3D7FE3,#1D5FC4); --nl-deep-ink:#8DB6FF; --nl-deep-sh:2px 8px 18px -10px rgba(0,0,0,.7); --nl-on-deep:#FFFFFF;
  --nl-deep-soft:rgba(141,182,255,.12); --nl-deep-soft-h:rgba(141,182,255,.2);
  --nl-well:rgba(255,255,255,.06); --nl-well-f:rgba(255,255,255,.10); --nl-well-sh:0 1px 2px rgba(0,0,0,.3); --nl-well-sh-f:0 1px 2px rgba(0,0,0,.35),5px 16px 30px -16px rgba(0,0,0,.7); --nl-key:#E8EDF5; --nl-val:#D3DAE6;
  --nl-t-ok:rgba(127,211,160,.14); --nl-t-ok-ink:#7FD3A0; --nl-t-todo:rgba(240,192,106,.14); --nl-t-todo-ink:#F0C06A; --nl-t-wait:rgba(255,255,255,.07); --nl-t-wait-ink:#B0BACB;
  --nl-t-blue:rgba(141,175,227,.14); --nl-t-blue-ink:#C3D5F3; --nl-t-slate:rgba(255,255,255,.08); --nl-t-slate-ink:#C9D2E0;
  --nl-glow-ok:rgba(127,211,160,.18); --nl-glow-chg:rgba(240,192,106,.18); --nl-need:rgba(240,192,106,.22); --nl-dot-todo:#F0C06A; --nl-dot-bad:#FF9D90; --nl-dot-wait:#8F9AAD;
  --nl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='rgba(127,211,160,.18)'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%237FD3A0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-solid:#18202E; --nl-pop-sh:0 0 0 1px rgba(255,255,255,.08),0 22px 44px -18px rgba(0,0,0,.7); --nl-ok-line:#4E8C67; --nl-ring-ok:#7FD3A0;
  --nl-map:linear-gradient(160deg,#18233A,#221F1B); --nl-map-road:rgba(255,255,255,.14); --nl-pin:#8DAFE3;
  --nl-pv-banner:radial-gradient(160px 120px at 85% 20%,rgba(120,100,70,.35),rgba(120,100,70,0) 70%),radial-gradient(200px 140px at 15% 90%,rgba(60,90,140,.45),rgba(60,90,140,0) 70%),linear-gradient(135deg,#17233A,#1C2638);
  --nl-ok:#7FD3A0; --nl-warn:#F0C06A; --nl-bad:#FF9D90; --ok:#7FD3A0; --warn:#F0C06A; --bad:#FF9D90; --live:#7FD3A0; --av-1:var(--accent-top); --av-2:var(--accent); --lt1:var(--accent-top); --lt2:var(--accent); --lt3:var(--accent) } }
html.ui-nl[data-theme="dark"]{
  --bg:#0B1019; --surface:#131A26; --surface-2:#18202E; --surface-3:#1E2736;
  --b1:#13213A; --b2:#111C31; --b3:#121E34;
  --ink:#E8EDF5; --muted:#B0BACB; --faint:#8F9AAD;
  --accent:#8DAFE3; --accent-top:#A6C2EC; --accent-soft:rgba(141,175,227,.13); --on-accent-soft:#C3D5F3;
  --navy:#8DAFE3; --navy-d:#C3D5F3; --navy-l:#1B2638; --navy-xl:#151E2D; --info:#C3D5F3; --info-bg:#1B2638;
  --nl-btn:rgba(141,175,227,.16); --nl-btn-h:rgba(141,175,227,.24); --nl-on-btn:#D3E1F7; --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn);   /* NL3 · the dark blocks of Classic out-rank html.ui-nl (0,2,0 > 0,1,1): a plain <button> was solid blue in dark */
  --nl-btn2:rgba(255,255,255,.06); --nl-btn2-ring:rgba(255,255,255,.14); --nl-on-btn2:#C9D2E0;
  --soft:#1B2331; --soft-2:#232D3D; --on-soft:#C9D2E0;
  --nl-line:rgba(255,255,255,.14); --nl-line-2:rgba(255,255,255,.09); --divider:rgba(255,255,255,.14);
  --nl-glass:linear-gradient(155deg,rgba(32,42,60,.92),rgba(22,30,45,.78));
  --nl-glass-sh:inset 0 1px 0 rgba(255,255,255,.08),inset 0 0 0 1px rgba(255,255,255,.05),0 26px 50px -32px rgba(0,0,0,.8);
  --nl-bar:linear-gradient(155deg,rgba(28,37,53,.99),rgba(21,28,41,.97));
  --nl-head:#0B1019;
  --nl-on-accent:#0B1019; --nl-on-solid:#FFFFFF;
  --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(141,175,227,.16)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23D3E1F7' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-hint:#6F7A8C; --nl-tint-h:rgba(255,255,255,.05); --nl-tint-f:rgba(141,175,227,.13); --nl-label:#8F9AAD; --nl-label-f:#C3D5F3; --nl-dz:rgba(255,255,255,.26);
  --nl-icb:rgba(255,255,255,.06); --nl-icb-ring:rgba(255,255,255,.12); --nl-fab:linear-gradient(160deg,#1E2A3D,#18233A); --nl-dng:rgba(255,120,110,.14); --nl-dng-h:rgba(255,120,110,.22);
  --nl-toast-sh:0 0 0 1px rgba(255,255,255,.08),0 18px 40px -18px rgba(0,0,0,.7); --nl-skel:rgba(255,255,255,.08);
  --nl-drag-glass:linear-gradient(160deg,rgba(19,26,38,.80),rgba(19,26,38,.58)); --nl-drawer-sh:rgba(0,0,0,.6);
  --nl-bar-sh:inset 0 1px 0 rgba(255,255,255,.07),0 18px 40px -22px rgba(0,0,0,.7);
  --nl-deep:linear-gradient(160deg,#3D7FE3,#1D5FC4); --nl-deep-ink:#8DB6FF; --nl-deep-sh:2px 8px 18px -10px rgba(0,0,0,.7); --nl-on-deep:#FFFFFF;
  --nl-deep-soft:rgba(141,182,255,.12); --nl-deep-soft-h:rgba(141,182,255,.2);
  --nl-well:rgba(255,255,255,.06); --nl-well-f:rgba(255,255,255,.10); --nl-well-sh:0 1px 2px rgba(0,0,0,.3); --nl-well-sh-f:0 1px 2px rgba(0,0,0,.35),5px 16px 30px -16px rgba(0,0,0,.7); --nl-key:#E8EDF5; --nl-val:#D3DAE6;
  --nl-t-ok:rgba(127,211,160,.14); --nl-t-ok-ink:#7FD3A0; --nl-t-todo:rgba(240,192,106,.14); --nl-t-todo-ink:#F0C06A; --nl-t-wait:rgba(255,255,255,.07); --nl-t-wait-ink:#B0BACB;
  --nl-t-blue:rgba(141,175,227,.14); --nl-t-blue-ink:#C3D5F3; --nl-t-slate:rgba(255,255,255,.08); --nl-t-slate-ink:#C9D2E0;
  --nl-glow-ok:rgba(127,211,160,.18); --nl-glow-chg:rgba(240,192,106,.18); --nl-need:rgba(240,192,106,.22); --nl-dot-todo:#F0C06A; --nl-dot-bad:#FF9D90; --nl-dot-wait:#8F9AAD;
  --nl-okck:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18'%3E%3Ccircle cx='9' cy='9' r='9' fill='rgba(127,211,160,.18)'/%3E%3Cpath d='M5.5 9.3l2.3 2.3L12.6 6.6' fill='none' stroke='%237FD3A0' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --nl-solid:#18202E; --nl-pop-sh:0 0 0 1px rgba(255,255,255,.08),0 22px 44px -18px rgba(0,0,0,.7); --nl-ok-line:#4E8C67; --nl-ring-ok:#7FD3A0;
  --nl-map:linear-gradient(160deg,#18233A,#221F1B); --nl-map-road:rgba(255,255,255,.14); --nl-pin:#8DAFE3;
  --nl-pv-banner:radial-gradient(160px 120px at 85% 20%,rgba(120,100,70,.35),rgba(120,100,70,0) 70%),radial-gradient(200px 140px at 15% 90%,rgba(60,90,140,.45),rgba(60,90,140,0) 70%),linear-gradient(135deg,#17233A,#1C2638);
  --nl-ok:#7FD3A0; --nl-warn:#F0C06A; --nl-bad:#FF9D90; --ok:#7FD3A0; --warn:#F0C06A; --bad:#FF9D90; --live:#7FD3A0; --av-1:var(--accent-top); --av-2:var(--accent); --lt1:var(--accent-top); --lt2:var(--accent); --lt3:var(--accent) }
/* L10a · a phone reads at 17px (16.5 to 17 in the brief), small print 15px */
@media(max-width:820px){ html.ui-nl{ --fs:17px; --fs-sm:15px; --fs-xs:14.5px; --fs-body:17px; --pad:18px } }
/* L14 · anything EMS keeps Rescue Blue, not softened; NL1.1 (the gap review's G3, the owner 8 Oct 2026): its main button is
   PALE Rescue Blue with deep Rescue Blue words, like every main button; solid Rescue Blue stays for the states (a dot, a switch) */
html.ui-nl.ems,html.ui-nl .ems{ --accent:#0B4FB3; --accent-soft:rgba(11,79,179,.10); --on-accent-soft:#083B86; --navy:#0B4FB3; --navy-d:#083B86;
  --nl-btn:rgba(11,79,179,.11); --nl-btn-h:rgba(11,79,179,.17); --nl-on-btn:#083B86; --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn);
  --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(11,79,179,.11)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23083B86' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") }
@media(prefers-color-scheme:dark){ html.ui-nl.ems:not([data-theme="light"]),html.ui-nl:not([data-theme="light"]) .ems{ --accent:#8DB6FF; --on-accent-soft:#BCD5FF; --navy:#8DB6FF; --nl-btn:rgba(141,182,255,.16); --nl-btn-h:rgba(141,182,255,.24); --nl-on-btn:#BCD5FF; --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn); --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(141,182,255,.16)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23BCD5FF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") } }
html.ui-nl.ems[data-theme="dark"],html.ui-nl[data-theme="dark"] .ems{ --accent:#8DB6FF; --on-accent-soft:#BCD5FF; --navy:#8DB6FF; --nl-btn:rgba(141,182,255,.16); --nl-btn-h:rgba(141,182,255,.24); --nl-on-btn:#BCD5FF; --btn:var(--nl-btn); --btn-top:var(--nl-btn); --on-btn:var(--nl-on-btn); --nl-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='26' height='26' viewBox='0 0 26 26'%3E%3Ccircle cx='13' cy='13' r='13' fill='rgba(141,182,255,.16)'/%3E%3Cpath d='M9 11.5l4 4 4-4' fill='none' stroke='%23BCD5FF' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") }
/* ===== NL1 · the new look (core/newlook.php; its tokens are nl_tokens_css() in core/ui.php) ===== */
/* ---- L1 · the page: near white, very faint blue glows, nothing drifting ---- */
html.ui-nl body{background-color:var(--bg)}
html.ui-nl body::before{opacity:.9!important;animation:none!important;filter:blur(80px);
  background:radial-gradient(48vmax 40vmax at -8% -10%,var(--b1),transparent 70%),radial-gradient(44vmax 44vmax at 108% 60%,var(--b2),transparent 70%)} /* design-ok: NL1 · the brief's L1 glow and L10a sizes (canvas v53) */
/* ---- L10 · type: Sora at 400 (never lighter), larger words, no ghost numbers ---- */
html.ui-nl :is(h1,h2,.ptitle h1,.hello h1,.phello h1,.lgcard h1,.gsh h2,.chead h2,.gph h2,.nph strong,.gbellsheet .nph strong){font-weight:400}
html.ui-nl h1{letter-spacing:-.015em}
html.ui-nl :is(.glbl,.crumb,.rib span,.tbl th,.hqhd,.sfh,.gfld>span,.drawer .dsec,.frow>label:not(.chk),.frow2>div>label:not(.chk),.frow2>label:not(.chk),.lgcard label,.rside h2,.rfact b){
  font-family:var(--font)!important;font-weight:600;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)} /* design-ok: NL1 · the brief's L1 glow and L10a sizes (canvas v53) */
html.ui-nl :is(.rib b,.sv,.okt b,.hello .hh1 b){font-family:var(--display);font-weight:400;font-size:36px;line-height:1.05;letter-spacing:-.01em} /* design-ok: NL1 · the brief's L10a sizes (labels 14, chips 15, numbers 36, the bottom bar and counts 12) */
html.ui-nl .rib b.rbw{font-family:var(--font);font-size:var(--fs-lg)}
html.ui-nl :is(.ghostn,.bgnum,.wm,.hghost){display:none!important}

/* ---- L5 / L5a · FLAT, EDGE TO EDGE: no card is a box (one hero at most, below) ---- */
html.ui-nl :is(.card,.pc,.gpanel,.glass,.rib,.statc,.rside,.rfacts,.ocard,.ccard,.tsrow,.fcard,.okt,.optc,.nextc,.lgcard,.tbdoor,.gl):where(:not(.nlhero,dialog,.tabbar,.side,.hdr,.appbar,.bdtop,.tbtop,.bdsticky,.job)){
  background:transparent!important;background-image:none!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding-left:0!important;padding-right:0!important}
html.ui-nl :is(.card,.pc,.gpanel,.glass,.gl):where(:not(.nlhero))::after{display:none}
html.ui-nl .tbdoors{gap:0 28px}
/* no card inside a card: an inner panel is just a section of its parent, divided by the same fine line */
html.ui-nl :is(.card,.pc,.gpanel,.nlhero) :is(.card,.pc,.gpanel){margin-left:0!important;margin-right:0!important}
/* a number row (the ribbon) is numbers with a line on top, side by side: no tiles */
html.ui-nl .ribbon{gap:0 24px}
html.ui-nl .rib{padding-top:16px!important;padding-bottom:12px!important;text-align:left}
html.ui-nl a.rib:hover{transform:none;background:var(--accent-soft)!important}
/* rows that used a faint fill to read as rows: open, a fine line under each, a soft blue on hover */
html.ui-nl :is(.gqrow,.hqr,.mdr,.tdy li,.syschk li,.srow,.lrow,.refrow,.ntrow,.scrow,.cprow,.cpjob,.cpro,.cpshare,.cmrec .cmrow,.jrruns li,.ivtpl,.ckrow,.reqs li,.coming,.skrow,.csum li,.pitem,.npit,.titem,.browse li a,.permcaps .permi,.preset label,.opts label,.steps li){
  background:transparent!important;border-radius:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;margin-bottom:0!important}
html.ui-nl :is(a.gqrow,a.hqr,a.mdr,a.srow,a.ckrow,a.cprow,.browse li a,a.pitem):hover{background:var(--accent-soft)!important}
html.ui-nl :is(.gqueue,.mdl,.galist:not(dialog .galist)){gap:0}
/* tables: no card round them, no zebra; a line on top of every row, the header in small caps */
html.ui-nl .tbl{border-collapse:collapse;border-spacing:0}
html.ui-nl .tbl td{background:transparent!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line-2)}
html.ui-nl .tbl tr:hover td{background:var(--accent-soft)!important}
html.ui-nl .tbl th{padding:4px 12px 10px}
html.ui-nl .tbl.stack tr{background:transparent!important;border-radius:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
/* banners keep a soft tint (they are messages), without a box shadow */
html.ui-nl :is(.note,.sysbar,.pnote){box-shadow:none}

/* ---- L6 · THE ONE GLASS PANEL per screen (class "nlhero"), no blur behind words ---- */
html.ui-nl .nlhero{background:var(--nl-glass)!important;border:0!important;border-radius:26px!important;box-shadow:var(--nl-glass-sh)!important;
  -webkit-backdrop-filter:none!important;backdrop-filter:none!important;padding:20px 22px!important}
html.ui-nl .nlhero::after{display:none}
@media(max-width:820px){ html.ui-nl .nlhero{padding:18px!important;border-radius:24px!important} }

/* ---- L11 · the office: the side menu flat, edge to edge, one fine line; the top bar flat with a line under it ---- */
@media(min-width:821px){
  html.ui-nl{--hh:72px}
  html.ui-nl .side{top:0;left:0;bottom:0;border-radius:0;padding:18px 12px;background:transparent;box-shadow:inset -1px 0 0 var(--nl-line);-webkit-backdrop-filter:none;backdrop-filter:none}
  html.ui-nl .hdr{top:0;left:var(--sw);right:0;height:calc(var(--hh) + var(--sat));border-radius:0;padding:var(--sat) 24px 0;
    background:var(--nl-head);box-shadow:inset 0 -1px 0 var(--nl-line-2);-webkit-backdrop-filter:none;backdrop-filter:none}
  html.ui-nl body.navmin .hdr{left:var(--swc)}
  html.ui-nl .main{margin-left:var(--sw);padding:calc(var(--hh) + var(--sat) + 26px) 32px 64px 32px}
  html.ui-nl body.navmin .main{margin-left:var(--swc)}
  html.ui-nl .sflyo{background:var(--surface);box-shadow:var(--sh-lg)}
}
/* L11a · the navigation keeps every behavior (the hover fly-outs with their 10px bridge and the .up flip, the collapse toggle
   to the icon rail, remembered; the phone drawer and its accordion; the portals' bars and drawers), restyled: fly-outs and
   drawers SOLID white with the soft shadow, the rail flat with one fine line, the chosen item a filled soft blue */
@media(min-width:821px){
  html.ui-nl .sflyo{background:var(--surface)!important;border:0!important;border-radius:18px;box-shadow:0 0 0 1px var(--nl-line-2),0 22px 44px -20px rgba(20,40,80,.38)!important;-webkit-backdrop-filter:none;backdrop-filter:none}
  html.ui-nl .sfh{color:var(--faint)}
  html.ui-nl body.navmin .side{padding:18px 12px}
}
@media(max-width:820px){ html.ui-nl .side{background:var(--surface)} }
html.ui-nl .drawer{background:linear-gradient(var(--soft-2),var(--soft-2)) calc(100% - 10px) 50% / 5px 44px no-repeat,var(--surface)!important;box-shadow:0 24px 60px -24px rgba(14,21,34,.45)!important} /* design-ok: NL1 · the approved new-look glass (canvas v53: the hero, the bars, the glow, the drawer grip) */
html.ui-nl :is(.drawer nav a,.drawer nav button.dlink){color:var(--ink)}
html.ui-nl :is(.drawer nav a:hover,.drawer nav button.dlink:hover){background:var(--accent-soft)}
html.ui-nl :is(.cmenup,.recentp,.rmorep,.rowmorep,.rtmorep,.npanel){background:var(--surface)!important;box-shadow:0 0 0 1px var(--nl-line-2),0 22px 44px -20px rgba(20,40,80,.38)!important}
html.ui-nl :is(.scat,.snav){color:var(--ink);font-weight:600;font-size:15px} /* design-ok: NL1 · the brief's L10a sizes (labels 14, chips 15, numbers 36, the bottom bar and counts 12) */
html.ui-nl :is(.scat,.snav):hover{background:var(--accent-soft)}
html.ui-nl :is(.scat.on,.snav.on){background:var(--accent-soft);color:var(--on-accent-soft)}
html.ui-nl .snav .snavn{background:var(--accent-soft);color:var(--on-accent-soft)}
html.ui-nl .ck{background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-btn2-ring);border-radius:999px}
html.ui-nl .ck:hover{background:var(--surface)}
html.ui-nl :is(.ibtn,.gicb:not(.clear)){background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-btn2-ring);color:var(--ink)}
html.ui-nl :is(.ibtn,.gicb:not(.clear)):hover{background:var(--surface)}
html.ui-nl .hdr .navtog{background:transparent;box-shadow:none}
html.ui-nl .bell .dot{background:var(--nl-badge);color:var(--nl-on-badge);box-shadow:none}
html.ui-nl .uava .av{background:linear-gradient(160deg,var(--accent-top),var(--accent));color:var(--nl-on-accent)} /* design-ok: NL1 · the approved new-look glass (canvas v53: the hero, the bars, the glow, the drawer grip) */
/* the floating bars (L5a 2): the phone bottom bar and the record's phone action bar float as glass; the portal's top bar flat */
@media(max-width:820px){
  html.ui-nl .hdr{top:0;left:0;right:0;height:calc(var(--hh) + var(--sat));border-radius:0;padding:var(--sat) 10px 0;
    background:var(--nl-head);box-shadow:inset 0 -1px 0 var(--nl-line-2);-webkit-backdrop-filter:none;backdrop-filter:none}
  html.ui-nl body.navmin .hdr{left:0}
  html.ui-nl .main{--nl-gut:var(--pad)}
}
html.ui-nl :is(.tabbar,.racts,.applybar,.bdsticky,.bdtop,.tbtop){background:var(--nl-bar)!important;box-shadow:var(--nl-bar-sh)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:0!important}
html.ui-nl .tabbar a{color:var(--muted)}
html.ui-nl .tabbar a :is(span,.lbl,small){font-size:12px}   /* L10a · the bottom bar keeps 12px so five tabs fit at 380px */ /* design-ok: NL1 · the brief's L10a sizes (labels 14, chips 15, numbers 36, the bottom bar and counts 12) */
html.ui-nl :is(.pbadge,.bell .dot,.snav .snavn,.badge,.tabbar .pbadge,.cnt){font-size:12px}   /* a count in a bubble is not small print */ /* design-ok: NL1 · the brief's L10a sizes (labels 14, chips 15, numbers 36, the bottom bar and counts 12) */
html.ui-nl :is(body,p,li,td){text-shadow:none}
html.ui-nl :is(.tabbar a.on,.tabbar>a.on){background:var(--accent-soft);color:var(--on-accent-soft)}
html.ui-nl .tabbar .gpill{background:var(--accent-soft)}
html.ui-nl .tabbar .tplus{background:var(--nl-btn);background-image:none;color:var(--nl-on-btn);box-shadow:none}
html.ui-nl .tabbar .tplus .ic{color:var(--nl-on-btn)}
html.ui-nl .appbar{background:var(--nl-head)!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:0!important}
/* L5 · EDGE TO EDGE. --nl-gut is the page column's side padding: a top-level open section runs out into it (its line reaches
   the edges: the screen's on a phone, the whole work area in the office on a computer) and takes it back as padding (the words
   stay where they were, 18px in on a phone); a table in it runs to the same edges, its first and last cells inset the same.
   The Career Profile and the client portal on a computer keep their narrow column: their lines span that column. */
@media(min-width:821px){ html.ui-nl .main{--nl-gut:32px} }
@media(max-width:820px){
  html.ui-nl .pw{padding-left:18px;padding-right:18px;--nl-gut:18px}
  html.ui-nl body.app .appmain{padding-left:18px;padding-right:18px;--nl-gut:18px}
  html.ui-nl body.plain .pw{--nl-gut:0px}
}
html.ui-nl :where(.main,.pw,.appmain,.wrap,.chome,.hstack,.hgrid) > :is(.card,.pc,.gpanel,section.glass,.ocard,.rside):where(:not(.nlhero)){
  margin-left:calc(-1 * var(--nl-gut))!important;margin-right:calc(-1 * var(--nl-gut))!important;padding-left:var(--nl-gut)!important;padding-right:var(--nl-gut)!important}
html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll,.tbl){margin-left:calc(-1 * var(--nl-gut));margin-right:calc(-1 * var(--nl-gut))}
html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll) > .tbl{width:100%}
html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > .tbl{width:calc(100% + 2 * var(--nl-gut))}
html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll,.tbl) :is(td,th):first-child{padding-left:var(--nl-gut)}
html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll,.tbl) :is(td,th):last-child{padding-right:var(--nl-gut)}
/* L12a · room to breathe on a phone: 24px between sections; a flat row 18 to 20px above and below its words with the line
   between rows (no gap stacked on a line); 22px inside the hero; a label 12px above its first row; 12px between two buttons;
   buttons 44px tall; the last row clears the bottom bar (the shells' bottom padding) */
@media(max-width:820px){
  html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,.gpanel,section.glass,.ocard,.rside):where(:not(.nlhero)){padding-top:20px!important;padding-bottom:20px!important;margin-top:0!important;margin-bottom:0!important}
  html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,.gpanel,section.glass,.ocard,.rside):where(:not(.nlhero)):last-child{box-shadow:inset 0 1px 0 var(--nl-line),inset 0 -1px 0 var(--nl-line)!important}
  html.ui-nl :where(.main,.pw,.appmain) > :is(.card,.pc,.gpanel,section.glass,.ocard,.rside) + :not(.card,.pc,.gpanel,section.glass,.ocard,.rside,script,style,template,dialog){margin-top:24px}
  html.ui-nl :where(.main,.pw,.appmain) > :not(.card,.pc,.gpanel,section.glass,.ocard,.rside,script,style,template,dialog) + :is(.card,.pc,.gpanel,section.glass,.ocard,.rside){margin-top:24px!important}
  html.ui-nl :where(.main,.pw,.appmain) > .nlhero{margin-top:0;margin-bottom:24px!important}
  html.ui-nl .nlhero{padding:22px!important}
  html.ui-nl :is(.gqrow,.hqr,.mdr,.srow,.ckrow,.cprow,.pitem,.tdy li,.reqs li,.skrow){padding-top:18px!important;padding-bottom:18px!important}
  html.ui-nl :is(.chead,.gph,.hhead,.ckhead,.ghead,.cxtag){margin-bottom:12px!important}
  html.ui-nl :is(.glbl,.cxtag){margin-top:6px}
  html.ui-nl :is(.gacts,.acts,.cxacts,.hacts,.rpacts,.rowacts,.bdaprow,.lkrow,.nextc .acts,.cpacts,.cmacts){gap:12px!important}
  html.ui-nl :is(.btn,.btnl,.btn.sm,.btn.xs,.btnl.sm){min-height:44px}
}
/* the public pages: one flat column */
html.ui-nl :is(.wrap>.card,.wrap>.pc,.wrap>.detail):not(.nlhero){background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line)!important;padding-left:0!important;padding-right:0!important}
html.ui-nl body.plain .pw{background:var(--nl-glass)!important;box-shadow:var(--nl-glass-sh)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:26px!important}
html.ui-nl .lgcard{background:var(--nl-glass)!important;box-shadow:var(--nl-glass-sh)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border-radius:26px!important;padding:30px 28px!important}

/* ---- L3 / L4 · buttons: the main one pale blue with navy words; the second white with a hairline ring ---- */
html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn):where(:not(.ghost,.soft,.quiet,.danger,.lnk,.dlink)){background:var(--nl-btn)!important;background-image:none;color:var(--nl-on-btn)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important;border:0;filter:none}
html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn):where(:not(.ghost,.soft,.quiet,.danger,.lnk,.dlink)) *{color:var(--nl-on-btn)!important}
html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn):where(:not(.ghost,.soft,.quiet,.danger,.lnk,.dlink)):hover{background:var(--nl-btn-h)!important}
html.ui-nl :is(.ems .btn,.ems .btnl,.ems.btn):where(:not(.ghost,.soft,.quiet,.danger)){background:var(--nl-btn)!important} /* NL1.1 · G3: pale Rescue Blue (the EMS scope's --nl-btn) with deep Rescue Blue words */
/* a plain button is a main button; a component button styles itself (its own class wins: this rule is (0,0,2), one more than
   the shells' plain button rules and less than any class), so a picker's chosen card stays different from the others */
:where(html.ui-nl) body button:where(:not(.ghost,.thmb,.jheart,.uxchange,.uxclear,.iconbtn,.dlink,.lnk,.pwshow,.sob,.tipb,.cmfab,.cmsend,.vbtn,.quiet,.ib,.danger,.btn,.ggrab,.gicb,.ibtn,.gpick,.umi,.garow,.gqrow,.tbtn,.g2pk,.gtok,.gpk,.pmore,.jtab,.gx,[role="tab"],[role="menuitem"])){
  background:var(--nl-btn);background-color:var(--btn);background-image:none;color:var(--nl-on-btn);box-shadow:inset 0 1px 0 rgba(255,255,255,.55)}
html.ui-nl :is(.btn.ghost,.btn.soft,.btnl.ghost,button.ghost,.palact,.rfmore){background:var(--nl-btn2)!important;background-image:none!important;color:var(--nl-on-btn2)!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important;border:0!important}
html.ui-nl :is(.btn.ghost,.btn.soft,.btnl.ghost,button.ghost):hover{background:var(--surface)!important}
html.ui-nl :is(.btn.ghost,.btn.soft,.btnl.ghost,button.ghost) *{color:inherit}
html.ui-nl :is(.btn.ghost.on,.btn.soft.on){background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;box-shadow:none!important}
html.ui-nl .btn.quiet{color:var(--on-accent-soft)}
html.ui-nl :is(.btn.danger,button.danger,.btnl.danger,.sdconfirm .btn.danger){background:rgba(163,39,27,.09)!important;background-image:none!important;color:var(--nl-bad)!important;box-shadow:none!important}
html.ui-nl :is(.btn.navy,button.navy,.btnl.navy){background:var(--nl-btn)!important;background-image:none!important;color:var(--nl-on-btn)!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.55)!important}
html.ui-nl :is(.btn.teal){background:var(--nl-btn)!important;color:var(--nl-on-btn)!important}

/* ---- L7 · status: a still dot and colored words, no pill; "waiting" or "new" is blue words with no dot ---- */
/* a stage chip carries the colors chosen in Settings (style="background:..;color:.."): it keeps its own pill, so its words stay
   readable in dark mode (dark words on the dark page otherwise); NL2 decides whether stages become words with a dot */
html.ui-nl :is(.chip,.tag,.ptag):where(:not([style*="background"])){background:transparent!important;border:0!important;box-shadow:none!important;padding:0!important;height:auto;min-height:0;border-radius:0;
  color:var(--muted);font-weight:600;font-size:15px;line-height:20px;display:inline-flex;align-items:center;gap:6px;margin-right:10px;white-space:nowrap} /* design-ok: NL1 · the brief's L1 glow and L10a sizes (canvas v53) */
html.ui-nl :is(.chip,.tag,.ptag):is(.ok,.warn,.bad,.good,.err,.late,.danger)::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;flex:none}
html.ui-nl :is(.chip,.tag,.ptag):is(.ok,.good){color:var(--nl-ok)!important}
html.ui-nl :is(.chip,.tag,.ptag).warn{color:var(--nl-warn)!important}
html.ui-nl :is(.chip,.tag,.ptag):is(.bad,.err,.late,.danger){color:var(--nl-bad)!important}
html.ui-nl :is(.chip,.tag,.ptag):is(.info,.on,.teal,.new,.hl){color:var(--on-accent-soft)!important}
/* a chip that is a link or a button (a filter you tap) keeps a tap target and a soft blue when chosen */
html.ui-nl :is(a.chip,button.chip,.chips a,.chip a){min-height:36px;padding:0 4px!important}
html.ui-nl :is(.chips a.on,.ptabs a.on,.frail a.on,.rsub .chip.on){background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;border-radius:999px;padding:0 12px!important}
/* L8 · tags are words, 10px apart (the margin above); highlighted ones blue */
html.ui-nl .jmchip,html.ui-nl .jm-chip{background:transparent!important;padding:0!important;margin-right:10px;color:var(--muted)}
/* the status lights stay still */
html.ui-nl .gdot{box-shadow:none}

/* ---- L9 · icons: thin lines, no tile behind them ---- */
html.ui-nl :is(.gico,.garow .gico,.emptyi,.empty .emptyi,.tile,.cdico,.rpico,.rpkico,.tcomp summary::before){background:transparent!important;box-shadow:none!important;color:var(--accent)}
html.ui-nl .sdot{background:transparent!important;box-shadow:none!important}   /* a status icon keeps its status color, only the tile goes */
html.ui-nl :is(.garow.ok .gico){color:var(--nl-ok)}
html.ui-nl :is(.garow.danger .gico){color:var(--nl-bad)}
html.ui-nl svg :is(path,circle,rect,line,polyline){stroke-width:inherit}

/* ---- tabs and segments: a soft track, the chosen one white (segments) or a soft blue fill (tabs); never an underline ---- */
html.ui-nl :is(.sectabs,.gpills,.pseg,.psub,.vtog,.g2vm){background:rgba(14,21,34,.05);box-shadow:none}
html.ui-nl :is(.sectabs a.on,.pseg a.on,.psub a.on,.vtog a.on,.g2vm a.on,.sectabs .gpill,.pseg .gpill,.psub .gpill){background:var(--surface)!important;background-image:none!important;color:var(--on-accent-soft)!important;box-shadow:0 4px 10px -6px rgba(20,40,80,.35)!important}
html.ui-nl .gpills>.gknob{background:var(--surface);background-image:none;box-shadow:0 4px 10px -6px rgba(20,40,80,.35)}
html.ui-nl :is(.gpills>.on,.gpills>[aria-pressed="true"],.gpills>[aria-current="page"]){color:var(--on-accent-soft)}
html.ui-nl .gpills:not(:has(>.gknob))>.on{background:var(--surface);background-image:none}
html.ui-nl .rtabs-i{background:transparent;box-shadow:inset 0 -1px 0 var(--nl-line-2);border-radius:0;-webkit-backdrop-filter:none;backdrop-filter:none}
html.ui-nl :is(.rtabs a.on,.rtabs .gpill){background:var(--accent-soft)!important;background-image:none!important;color:var(--on-accent-soft)!important;box-shadow:none!important}
html.ui-nl :is(.ptopnav a.on,.drawer nav a.on){background:var(--accent-soft);color:var(--on-accent-soft)}
html.ui-nl :is(.gpick.on,.gpick[aria-pressed="true"]){background:var(--accent-soft);color:var(--on-accent-soft)}
html.ui-nl .gpick{background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-btn2-ring);color:var(--nl-on-btn2)}
/* meters and bars: the softer blue */
html.ui-nl :is(.gbar i,.meter i,.cprog i,.mdbar i,.ofill .meter i,.setupc .meter i){background:linear-gradient(90deg,var(--accent-top),var(--accent))!important} /* design-ok: NL1 · the approved new-look glass (canvas v53: the hero, the bars, the glow, the drawer grip) */

/* ---- fields: see G8a below (NL1.1: the borderless floating fields replace this sprint's first light fill) ---- */

/* ---- the faint fills older screens used for boxes and rows (--zebra) are gone: label and value pairs sit open with a line ---- */
html.ui-nl,html.ui-nl[data-theme="dark"]{--zebra:transparent}
@media(prefers-color-scheme:dark){ html.ui-nl:not([data-theme="light"]){--zebra:transparent} }
html.ui-nl :is(.rpfact,.rpmt,.rpnoteitem,.rpfold){border-radius:0!important;padding-left:0!important;padding-right:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
/* messages still read as a conversation: the bubbles keep a soft fill */
html.ui-nl :is(.rpmsgb,.pmsg .b,.cmb,.cmmsg .b){background:var(--soft)!important}
html.ui-nl :is(.pmsg.me .b,.rpmsgb.me,.cmmsg.me .b){background:var(--accent-soft)!important;color:var(--ink)!important}
/* the search boxes: one white pill with a hairline; the word box inside it has no box of its own */
html.ui-nl :is(.g2q,.palline){background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-btn2-ring);border-radius:999px}
html.ui-nl :is(.g2q input,.g2q input:focus,.ck input){background:transparent!important;box-shadow:none!important}
/* the floating chat button (L5a 2): pale, like the mockup's Ask button */
html.ui-nl .cmfab{background:linear-gradient(160deg,var(--surface-2),var(--navy-l))!important;color:var(--nl-on-btn)!important;box-shadow:inset 0 1px 0 var(--surface),0 14px 26px -14px rgba(20,40,80,.45)!important} /* design-ok: NL1 · the approved new-look glass (canvas v53: the hero, the bars, the glow, the drawer grip) */

/* ---- drawers (L13): solid as G1c built them, the same softer colors ---- */
/* ---- L13 / L13a / L13b · THE NEW DRAWER (the owner, 8 Oct 2026; the brief's NL1 step 6a; canvas v62 KN8More, KN9MoreDrag),
   for EVERY drawer: the shared one (dialog.gsheet, SDSheet) and the CSS-only ones (Career Profile's menu and sheets, the
   client's More). SOLID when open (nothing shows through, nothing behind can be tapped: SDSheet's inert); EDGE TO EDGE and
   squarer: a bottom or top drawer runs the full width with 14px corners on its open edge only, a side drawer is flush with
   its side, full height, square, with no glow inside; rows and their fine lines run edge to edge with the words 20px in
   (on a computer a bottom or top drawer keeps its words in a readable column: under its button for a top one, centred for a
   bottom one); GLASS only while dragged (core/glass.php glass_sheet_js, "DRAG A DRAWER TO CLOSE IT") ---- */
html.ui-nl dialog.gsheet{--gin:20px;--pl:var(--gin);--pr:var(--gin);background:var(--surface);background-image:none;-webkit-backdrop-filter:none;backdrop-filter:none;
  padding-left:var(--pl);padding-right:var(--pr);box-shadow:0 -20px 48px -24px var(--nl-drawer-sh)}
html.ui-nl dialog.gsheet:not(.from-top,.top,.from-left,.from-right){left:0;right:0;width:100%;max-width:none;margin:0;border-radius:14px 14px 0 0}
html.ui-nl dialog.gsheet:is(.from-top,.top){left:0;right:0;width:100%;max-width:none;margin:0;border-radius:0 0 14px 14px;box-shadow:0 20px 48px -24px var(--nl-drawer-sh);
  --pl:var(--gpl,var(--gin));--pr:var(--gpr,var(--gin))}
@media(min-width:821px){
  html.ui-nl dialog.gsheet:not(.from-top,.top,.from-left,.from-right){--gin:max(20px,calc(50% - 360px))}
  html.ui-nl dialog.gsheet.wide:not(.from-top,.top,.from-left,.from-right){--gin:max(20px,calc(50% - 460px))}
}
html.ui-nl dialog.gsheet:is(.from-left,.from-right){top:0;bottom:0;height:100%;max-height:none;border-radius:0;--gin:20px;
  padding-top:calc(20px + var(--sat));padding-bottom:calc(26px + var(--sab))}
html.ui-nl dialog.gsheet.from-right{box-shadow:-20px 0 48px -24px var(--nl-drawer-sh)}
html.ui-nl dialog.gsheet.from-left{box-shadow:20px 0 48px -24px var(--nl-drawer-sh)}
/* the side grip sits in the 20px on the edge that faces the page */
html.ui-nl dialog.gsheet.from-right>.ggrab{width:16px;margin:0 0 -78px calc(-1 * var(--pl))}
html.ui-nl dialog.gsheet.from-left>.ggrab{width:16px;margin:0 calc(-1 * var(--pr)) -78px 0}
html.ui-nl .ggrab i{background:rgba(14,21,34,.18)}
/* a menu's own panel, moved into the drawer, is not a box inside the drawer */
html.ui-nl dialog.gsheet .gsrc>:is(.cmenup,.recentp,.rmorep,.rowmorep,.rtmorep,.npanel,div,nav,ul){background:transparent!important;box-shadow:none!important;border:0!important;border-radius:0!important;padding-left:0!important;padding-right:0!important}
html.ui-nl dialog.gsheet .gsrc :is(.recentp,.rmorep) :is(.empty,.hint,p.small){background:transparent;box-shadow:none;border-radius:0}
/* NL1.1 · the office bell's list (.npanel) inside a drawer is not a box (its fly-out ring drew two lines down the drawer) */
html.ui-nl dialog.gsheet .npanel{box-shadow:none!important;background:transparent!important;border-radius:0!important;border:0!important}
/* NL1.1 · a drawer head with several buttons (Mark all read, See all, the X) wraps them under the title on a narrow screen, never
   a word to a line */
html.ui-nl dialog.gsheet .gsh{flex-wrap:wrap;row-gap:4px}
html.ui-nl dialog.gsheet .gsh>:is(.btn,a.btn,button.btn){white-space:nowrap}
@media(max-width:767px){
  html.ui-nl dialog.gsheet .gsh:has(>.btn)>div:first-child{order:1;flex:1 1 calc(100% - 60px)}
  html.ui-nl dialog.gsheet .gsh:has(>.btn)>.gsx{order:2}
  html.ui-nl dialog.gsheet .gsh:has(>.btn)>.btn{order:3}
}
html.ui-nl[data-theme="dark"] .ggrab i{background:rgba(255,255,255,.24)}
@media(prefers-color-scheme:dark){ html.ui-nl:not([data-theme="light"]) .ggrab i{background:rgba(255,255,255,.24)} }
/* rows and their lines from edge to edge, the words 20px in */
html.ui-nl :is(dialog.gsheet .galist>.garow,dialog.gsheet .gpkl>.garow,dialog.gsheet.gmenusheet .gsrc>*>a,dialog.gsheet.gmenusheet .gsrc>*>button,dialog.gsheet.gmenusheet .gsrc>*>form>button,dialog.gsheet.gmenusheet .gsrc>*>.umrow,.gbellsheet .npit,.palsheet .palit){
  margin-left:calc(-1 * var(--pl))!important;margin-right:calc(-1 * var(--pr))!important;padding-left:var(--pl)!important;padding-right:var(--pr)!important;width:auto!important;max-width:none!important}
html.ui-nl dialog.gsheet .galist,html.ui-nl dialog.gsheet .gpkl{gap:0}
html.ui-nl dialog.gsheet .gsh{padding-bottom:12px;margin-left:calc(-1 * var(--pl));margin-right:calc(-1 * var(--pr));padding-left:var(--pl);padding-right:var(--pr);box-shadow:inset 0 -1px 0 var(--nl-line-2)}
html.ui-nl dialog.gsheet.from-right .gsh,html.ui-nl dialog.gsheet.from-left .gsh{margin-top:0}
/* after the slide in it stands still: a drag moves it, a spring back is a transition, never the slide in again */
html.ui-nl dialog.gsheet.gsin:not(.out,.gswapout,.gswap){animation:none;transition:transform .3s var(--gios)}
html.ui-nl dialog.gsheet.out{animation-duration:.22s!important}
html.ui-nl dialog.gsheet.out::backdrop{animation:gdDimOut .22s var(--ease) both}
@keyframes gdDimOut{from{opacity:calc(1 - var(--gdp,0))}to{opacity:0}}
/* WHILE DRAGGED: it follows the finger (no transition), wears glass (the blur is of the page behind only, its own words stay
   crisp), and the dim fades with it */
html.ui-nl dialog.gsheet.drag{animation:none!important;transition:none!important;transform:translate(var(--dx),var(--dy))!important;-webkit-user-select:none;user-select:none}
html.ui-nl dialog.gsheet.drag::backdrop{animation:none;opacity:calc(1 - var(--gdp,0))}
@media(prefers-reduced-motion:no-preference){
  html.ui-nl :is(dialog.gsheet,.drawer,body .sheetck~.sheet,.moresheet .sheet).drag{background:var(--nl-drag-glass)!important;background-image:var(--nl-drag-glass)!important;
    -webkit-backdrop-filter:blur(18px) saturate(1.3)!important;backdrop-filter:blur(18px) saturate(1.3)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.55),0 -24px 48px -26px rgba(14,21,34,.4)!important}
}
/* the CSS-only drawers follow the finger through --gdt; .gdout slides away (0.22s), .gdback springs back */
html.ui-nl :is(.drawer,body .sheetck~.sheet,.moresheet .sheet).drag{transform:var(--gdt)!important;transition:none!important;-webkit-user-select:none;user-select:none}
html.ui-nl :is(.drawer,body .sheetck~.sheet,.moresheet .sheet).gdout{transform:var(--gdt)!important;transition:transform .22s var(--gout)!important}
html.ui-nl :is(.drawer,body .sheetck~.sheet,.moresheet .sheet).gdback{transform:var(--gdt)!important;transition:transform .3s var(--gios)!important}
/* the page comes back from its step back in step with the finger (--gtf: 1 = stepped back, 0 = standing); on a phone the
   3D tilt exists ONLY under the finger (a tap opens and closes flat, G14) */
html.ui-nl.gdrag .gbl{transition:none!important}
@media(max-width:820px){
  html.ui-nl.gdrag.gback-bottom .gbl{transform:perspective(1000px) rotateX(calc(3deg * var(--gtf,0))) scale(calc(1 - .035 * var(--gtf,0)))!important;opacity:calc(1 - .1 * var(--gtf,0))!important}
  html.ui-nl.gdrag.gback-top .gbl{transform:perspective(1000px) rotateX(calc(-3deg * var(--gtf,0))) scale(calc(1 - .035 * var(--gtf,0)))!important;opacity:calc(1 - .1 * var(--gtf,0))!important}
  html.ui-nl.gdrag.gback-right .gbl{transform:perspective(1000px) rotateY(calc(-3deg * var(--gtf,0))) scale(calc(1 - .035 * var(--gtf,0)))!important;opacity:calc(1 - .1 * var(--gtf,0))!important}
  html.ui-nl.gdrag.gback-left .gbl{transform:perspective(1000px) rotateY(calc(3deg * var(--gtf,0))) scale(calc(1 - .035 * var(--gtf,0)))!important;opacity:calc(1 - .1 * var(--gtf,0))!important}
}
@media(min-width:821px){
  html.ui-nl.gdrag .gbl{transform:scale(calc(1 - .015 * var(--gtf,0)))!important;opacity:calc(1 - .4 * var(--gtf,0))!important}
}
/* reduced motion: the slide only (no tilt, no glass), still under the finger */
@media(prefers-reduced-motion:reduce){
  html.ui-nl dialog.gsheet.drag{transform:translate(var(--dx),var(--dy))!important}
  html.ui-nl.gdrag .gbl{transform:none!important;opacity:1!important}
}
/* ---- NL1.1 · A TOP DRAWER ON A COMPUTER IS A PANEL UNDER ITS BUTTON (the brief's section 16, the owner, 8 Oct 2026: "i like the
   fix", canvas row 18, v66). The bell's drawer ran edge to edge with its rows' lines across the whole screen and its words in a
   column under the bell: L13b's edge-to-edge rows (negative margins of the drawer's padding) met G1c's column under the button.
   From 768px wide a top drawer (the bell's on the office, the platform console, the client portal and the Career Profile; New,
   the account, recent and the palette too: the same drawer) is a 440px panel (640 the palette) right- or left-aligned under its
   button (core/glass.php placeTop: --gtl / --gtr, and --gbt = the top bar's bottom): a square top flush under the bar, 14px
   corners at the bottom only, solid; at most 70% of the screen tall, scrolling on its own under a head that stays put (the
   title, See all, the X), a soft fade at the bottom over the grip, which sits inside the panel. Rows inset 20px, their lines
   inside the panel (no negative margins). The button shows pressed (.nlpress); the page below the bar dims 14% and does not
   move. A drag up clips it under the bar (clip-path follows --dy); it closes the same way. Phones keep the full-width drawer. ---- */
@media(min-width:768px){
  html.ui-nl dialog.gsheet:is(.from-top,.top){top:var(--gbt,64px);bottom:auto;left:var(--gtl,auto);right:var(--gtr,14px);width:min(440px,calc(100% - 28px));max-width:none;
    max-height:70vh;max-height:70dvh;margin:0;padding:0 20px;--pl:20px;--pr:20px;border-radius:0 0 14px 14px;overflow-y:auto;gap:0;transform-origin:50% 0;
    box-shadow:0 0 0 1px var(--nl-line-2),0 22px 44px -22px var(--nl-drawer-sh);clip-path:inset(max(0px,calc(-1 * var(--dy,0px))) -60px -60px -60px)}
  html.ui-nl dialog.gsheet.palsheet:is(.from-top,.top){width:min(640px,calc(100% - 28px))}
  /* rows: the words 20px in, the lines inside the panel (the edge-to-edge negative margins do not apply here) */
  html.ui-nl dialog.gsheet:is(.from-top,.top) :is(.galist>.garow,.gpkl>.garow,.gsrc>*>a,.gsrc>*>button,.gsrc>*>form>button,.gsrc>*>.umrow,.npit,.palit){margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .npit{border-radius:0!important;background:transparent!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;margin:0!important;padding-top:14px!important;padding-bottom:14px!important}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .npit.unread{background:transparent!important;position:relative}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .npit.unread::before{content:"";position:absolute;left:-12px;top:21px;width:7px;height:7px;border-radius:50%;background:var(--accent)}   /* live marks unread: a still dot */
  /* the head stays put while the list scrolls under it */
  html.ui-nl dialog.gsheet:is(.from-top,.top) .gsh{position:sticky;top:0;z-index:2;background:var(--surface);margin:0 -20px!important;padding:16px 20px 12px!important;align-items:center;gap:10px}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .gsh>div:first-child{flex:1 1 auto;min-width:0}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .gsh :is(.npseeall,.gbellall){margin:0;align-self:center;white-space:nowrap}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .gbellsheet .npanel,html.ui-nl dialog.gsheet.gbellsheet:is(.from-top,.top) .npanel{padding:0;z-index:auto}   /* a flex item with a z-index is its own layer: the old 190 put the list over the grip */
  /* the grip inside the panel at the bottom, with a soft fade over the list above it */
  html.ui-nl dialog.gsheet:is(.from-top,.top)>.ggrab{position:sticky;bottom:0;z-index:2;order:99;margin:0 -20px;width:auto;padding:8px 0 10px;background:var(--surface)!important}
  html.ui-nl dialog.gsheet:is(.from-top,.top)>.ggrab::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px;pointer-events:none;background:linear-gradient(to bottom,transparent,var(--surface))}
  html.ui-nl dialog.gsheet:is(.from-top,.top) .gbody,html.ui-nl dialog.gsheet:is(.from-top,.top) .npanel{padding-bottom:6px}
  /* the button that opened it shows pressed */
  html.ui-nl .nlpress:not(#nl-none){background:var(--nl-btn)!important;color:var(--nl-on-btn)!important;box-shadow:none!important}   /* :not(#…) out-ranks the icon buttons' own white circle */
  /* the page below the bar dims 14% and stays still */
  html.ui-nl.gback-top .gbl,html.ui-nl.gback-top.gdrag .gbl{transform:none!important;opacity:1!important}
  html.ui-nl dialog.gsheet:is(.from-top,.top)::backdrop{background:linear-gradient(to bottom,transparent 0,transparent var(--gbt,64px),rgba(14,21,34,.14) var(--gbt,64px))} /* design-ok: NL1.1 · the brief's section 16: the page below the bar dims 14% */
  html.ui-nl[data-theme="dark"] dialog.gsheet:is(.from-top,.top)::backdrop{background:linear-gradient(to bottom,transparent 0,transparent var(--gbt,64px),rgba(0,0,0,.30) var(--gbt,64px))} /* design-ok: the same, dark */
}
@media(min-width:768px) and (prefers-color-scheme:dark){
  html.ui-nl:not([data-theme="light"]) dialog.gsheet:is(.from-top,.top)::backdrop{background:linear-gradient(to bottom,transparent 0,transparent var(--gbt,64px),rgba(0,0,0,.30) var(--gbt,64px))} /* design-ok: the same, dark */
}
/* it slides down from under the bar and back up under it (the clip follows the slide); a drag springs back with the clip */
@media(min-width:768px) and (prefers-reduced-motion:no-preference){
  html.ui-nl dialog.gsheet:is(.from-top,.top):not(.gsin,.out,.drag,.gswap,.gswapout){animation:gdSlideInTp .3s var(--gios) both}
  html.ui-nl dialog.gsheet:is(.from-top,.top).gsin:not(.out,.drag,.gswap,.gswapout){animation:none;transition:transform .3s var(--gios),clip-path .3s var(--gios)}
  html.ui-nl dialog.gsheet:is(.from-top,.top).out{animation:gdSlideOutTp .22s var(--gout) both!important}
}
@keyframes gdSlideInTp{from{transform:translateY(-100%);clip-path:inset(100% -60px -60px -60px)}to{transform:translateY(0);clip-path:inset(0 -60px -60px -60px)}}
@keyframes gdSlideOutTp{from{transform:translateY(var(--dy,0px));clip-path:inset(max(0px,calc(-1 * var(--dy,0px))) -60px -60px -60px)}to{transform:translateY(-100%);clip-path:inset(100% -60px -60px -60px)}}
/* the CSS-only drawers: Career Profile's menu (left) and sheets (right) flush and square, the client's More (bottom) full
   width with 14px on its open edge; rows edge to edge, words 20px in; solid, no glow */
@media(max-width:820px){
  html.ui-nl .drawer{border-radius:0!important;top:0;bottom:0;left:0;padding-left:0;padding-right:0;box-shadow:20px 0 48px -24px var(--nl-drawer-sh)!important}
  html.ui-nl .drawer .dhead{padding-left:20px;padding-right:20px}
  html.ui-nl .drawer nav{padding-left:0;padding-right:0}
  html.ui-nl :is(.drawer nav a,.drawer nav button.dlink){border-radius:0!important;padding-left:20px;padding-right:20px;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
  html.ui-nl .drawer nav a.dsub{padding-left:52px}
  html.ui-nl .drawer .dsec{padding-left:20px;padding-right:20px}
}
html.ui-nl body .sheetck~.sheet{border-radius:0;background:var(--surface);background-image:none;box-shadow:-20px 0 48px -24px var(--nl-drawer-sh)}
html.ui-nl body .sheetck~.sheet .sheethd{padding-left:20px;padding-right:20px;border-bottom:0;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
html.ui-nl body .sheetck~.sheet .sheetbody{padding-left:20px;padding-right:20px}
html.ui-nl .moresheet .sheet{left:0;right:0;width:100%;border-radius:14px 14px 0 0;background:var(--surface);background-image:none;padding-left:0;padding-right:0;box-shadow:0 -20px 48px -24px var(--nl-drawer-sh)}
html.ui-nl :is(.moresheet .sheet a,.moresheet .sheet button.sob){border-radius:0;padding-left:20px;padding-right:20px;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
html.ui-nl .moresheet .sheet .so{border-top:0;margin-top:0;padding-top:0}
/* the dim behind a CSS-only drawer never blurs the page's words (G6; the client's More scrim had a 6px blur) */
html.ui-nl :is(.scrim,.sheetscrim,.moresheet .scrim){-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.ui-nl .moresheet .sheet button.sob{width:100%;justify-content:flex-start;text-align:left;min-height:50px;background:transparent}
html.ui-nl :is(dialog.gsheet .garow,dialog.gsheet.gmenusheet .gsrc>*>a,dialog.gsheet.gmenusheet .gsrc>*>button,dialog.gsheet.gmenusheet .gsrc>*>form>button,.gnavsheet #side .scat,.gbellsheet .npit,.palsheet .palit){
  background:transparent!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;border-radius:0!important;margin-bottom:0!important}
html.ui-nl :is(dialog.gsheet .garow,dialog.gsheet.gmenusheet .gsrc>*>a,dialog.gsheet.gmenusheet .gsrc>*>button,dialog.gsheet.gmenusheet .gsrc>*>form>button,.gnavsheet #side .scat):hover{background:var(--accent-soft)!important}
html.ui-nl .gnavsheet #side .scat.on{background:var(--accent-soft)!important}
html.ui-nl .gbellsheet .npit.unread{background:var(--accent-soft)!important}

/* ---- words on a solid color: the look makes --on-btn the main button's navy words (on its pale blue), so anything else that
   used --on-btn on a solid color gets its own: initials on an accent circle; the StaffDash navy pins, key and mark keep white */
html.ui-nl :is(.avatar.ph,.ring .rav,.cav){color:var(--nl-on-accent)}
html.ui-nl .cav{background:linear-gradient(160deg,var(--accent-top),var(--accent))}
/* the resume page's "Print / save as PDF" (white words of its own on --btn): the main button's words */
html.ui-nl .bar button{color:var(--nl-on-btn)}
html.ui-nl :is(.sdm-p-jmsd .sdm-pb,.jmkey i.a,.bd .bmark){color:var(--nl-on-solid)}
/* an employer's initials on a job card (the boards' .tblogo.ini): navy tones keep white words; the first tone is solid accent */
html.ui-nl .bd .tblogo.ini{color:var(--nl-on-solid)}
html.ui-nl .bd .tblogo.ini:not(.t2,.t3,.t4){background-color:var(--sdnavy);background-image:linear-gradient(160deg,var(--sdnavy-top),var(--sdnavy))}
html.ui-nl .bd .tblogo.ini.t3{background-color:var(--sdnavy);background-image:linear-gradient(160deg,var(--sdnavy),var(--sdnavy-top))}

/* ---- a state shown by a filled blue (a dot, a switch that is on, a checked box, a progress ring or bar) stays solid: the look
   makes --btn the main button's pale blue, which would make these near invisible */
html.ui-nl{--metal-bar:linear-gradient(90deg,var(--accent-top),var(--accent))}
html.ui-nl :is(input,progress,meter){accent-color:var(--accent)}
html.ui-nl :is(.gdot.soon,.cddot.blue,.bd .dotc,.bd .led.soon,.bkdots i.on,.bd .line4 li:first-child::before,.bd .bdsw input:checked + i){background:var(--accent)}
html.ui-nl .clktick:has(input:checked)::before{background-color:var(--accent);background-image:none}
html.ui-nl .cdring .cdrf{stroke:var(--accent)}

/* ---- the larger words (L10a) without a broken line: what alignscan found with the look on ---- */
/* a record's key facts are flat now (no tile behind them), so no tile padding either: "None · set one" stays on one line */
html.ui-nl .rhg .rfmain .rfact{padding-left:0!important;padding-right:0!important}
html.ui-nl .rhg .rfacts.rfmain{column-gap:18px}
/* a label beside pills in one row keeps the row's center line (the phone's 6px label gap is for labels over a block) */
html.ui-nl :is(.cdag,.cdvbar,.gacts,.acts,.lkrow) > :is(.glbl,.cxtag){margin-top:0}
/* the build line on Today: one line on a phone */
@media(max-width:820px){
  html.ui-nl .sysbar.build{flex-wrap:nowrap;gap:8px;padding-right:4px}
  html.ui-nl .sysbar.build :is(strong,a){white-space:nowrap}
  html.ui-nl .sysbar.build strong{font-size:14px}
  /* the next step's "9 more after this one": the sentence, then its link under it */
  html.ui-nl .cxmorel{flex-direction:column;align-items:flex-start;gap:0}
}
/* Sections' grid: "Result only" fits its 92px box at 14px */
html.ui-nl .secgrid .seccell{font-size:14px}

/* ===== NL1.1 · THE GAP REVIEW (claude/BRIEF-NL-THE-NEW-LOOK-EVERYWHERE.md section 9, every item marked NL1; the owner, 8 Oct
   2026: "apply every item marked NL1 under html.ui-nl") and G8a (the borderless floating fields, which replace G8's fields) ===== */

/* ---- G1 · the whole button family, one mapping (main and second above, L3 / L4) ---- */
/* quiet: words only, navy, no fill, a 44px tap area */
html.ui-nl :is(.btn.quiet,.btnl.quiet,button.quiet){background:transparent!important;background-image:none!important;box-shadow:none!important;color:var(--nl-on-btn)!important;min-height:44px}
html.ui-nl :is(.btn.quiet,.btnl.quiet,button.quiet) *{color:inherit!important}
html.ui-nl :is(.btn.quiet,.btnl.quiet,button.quiet):hover{background:var(--nl-tint-h)!important}
/* danger: a pale red with red words (always asks first, unchanged) */
html.ui-nl :is(.btn.danger,button.danger,.btnl.danger,.sdconfirm .btn.danger){background:var(--nl-dng)!important;color:var(--nl-bad)!important}
html.ui-nl :is(.btn.danger,button.danger,.btnl.danger):hover{background:var(--nl-dng-h)!important}
html.ui-nl :is(.btn.danger,button.danger,.btnl.danger) *{color:inherit!important}
/* icon buttons: a white glass circle, 44px, the line icon in ink */
html.ui-nl :is(.ibtn,.gicb:not(.clear),.iconbtn){width:44px;height:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%!important;background:var(--nl-icb)!important;background-image:none!important;box-shadow:inset 0 0 0 1px var(--nl-icb-ring)!important;color:var(--ink)!important;place-items:center;align-items:center;justify-content:center}   /* never a display: the bars hide some of these (the phone bar's theme button, the collapsed rail) */
html.ui-nl :is(.ibtn,.gicb:not(.clear),.iconbtn):hover{background:var(--surface)!important}
html.ui-nl .hdr .navtog{background:transparent!important;box-shadow:none!important}
/* the office phone "+": a pale blue circle with a navy "+" (no navy fill, no black) */
html.ui-nl .tabbar .tplus{border-radius:50%;background:var(--nl-btn)!important;background-image:none!important;color:var(--nl-on-btn)!important;box-shadow:none!important}
/* Ask (floating): a pale glass circle with the navy sparkle (the canvas); the word stays for screen readers and the census */
html.ui-nl .askfab{width:56px;height:56px;padding:0;justify-content:center;border-radius:50%;background:var(--nl-fab)!important;color:var(--nl-on-btn)!important;box-shadow:inset 0 1px 0 var(--surface),0 14px 26px -14px rgba(20,40,80,.45)!important}
html.ui-nl .askfab svg{width:26px;height:26px;min-width:26px;color:var(--nl-on-btn)}
html.ui-nl .askfab span{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
html.ui-nl .cmfab{background:var(--nl-fab)!important}
/* segmented controls (.gpills, .tfilt, the record's view switches): a white knob on a faint track, the chosen words navy */
html.ui-nl :is(.tfilt,.gpills,.pseg,.vtog,.g2vm,.seg){background:rgba(14,21,34,.05)!important;box-shadow:none!important;border-radius:999px;-webkit-backdrop-filter:none;backdrop-filter:none}
html.ui-nl[data-theme="dark"] :is(.tfilt,.gpills,.pseg,.vtog,.g2vm,.seg){background:rgba(255,255,255,.06)!important}
@media(prefers-color-scheme:dark){ html.ui-nl:not([data-theme="light"]) :is(.tfilt,.gpills,.pseg,.vtog,.g2vm,.seg){background:rgba(255,255,255,.06)!important} }
html.ui-nl :is(.tfilt .btn,.seg a,.seg button){background:transparent!important;box-shadow:none!important;color:var(--muted)!important;font-weight:600}
html.ui-nl :is(.tfilt .btn.on,.tfilt .btn[aria-pressed="true"],.tfilt .btn[aria-current="page"],.seg .on){background:var(--surface)!important;background-image:none!important;color:var(--nl-on-btn)!important;box-shadow:0 4px 10px -6px rgba(20,40,80,.35)!important}
html.ui-nl :is(.gpills>.on,.gpills>[aria-pressed="true"],.gpills>[aria-current="page"],.sectabs a.on,.pseg a.on,.vtog a.on,.g2vm a.on){color:var(--nl-on-btn)!important}
/* filter tokens (select[data-gpick]) and filter chips: a white pill with a hairline; the value navy with the round chevron;
   chosen = a soft blue fill with navy words, never an outline */
html.ui-nl .gtok{background:var(--nl-btn2)!important;background-image:none!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important;border-radius:999px;color:var(--ink)}
html.ui-nl .gtok:hover{background:var(--surface)!important}
html.ui-nl .gtok .gtokv{color:var(--nl-on-btn);font-weight:600}
html.ui-nl .gtok>svg{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--nl-btn);color:var(--nl-on-btn);box-sizing:border-box;flex:none}
html.ui-nl :is(a.chip,button.chip,.chips a,.tbchips a,.bdchips a,.ochips a,.cats a){background:var(--nl-btn2)!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important;border-radius:999px!important;padding:0 14px!important;color:var(--ink)}
html.ui-nl :is(a.chip.on,button.chip.on,.chips a.on,.tbchips a.on,.bdchips a.on,.ochips a.on,.cats a.on,a.chip[aria-pressed="true"],button.chip[aria-pressed="true"],a.chip[aria-current="page"]){background:var(--accent-soft)!important;box-shadow:none!important;color:var(--nl-on-btn)!important}
/* disabled: 45% and no shadow; "sending..." keeps its words */
html.ui-nl :is(button,.btn,.btnl,.gtok,.gpick,input,select,textarea):disabled,html.ui-nl :is(.btn,.btnl,a.chip)[aria-disabled="true"]{opacity:.45!important;box-shadow:none!important;cursor:not-allowed;transform:none!important}
/* hover (a computer): the fill one step deeper and a 1px lift; pressed: deeper again, no scale bounce (phones never bounce) */
@media(hover:hover) and (pointer:fine){
  html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn):where(:not(.ghost,.soft,.quiet,.danger,.lnk,.dlink)):hover{background:var(--nl-btn-h)!important;transform:translateY(-1px)!important}
  html.ui-nl :is(.btn.ghost,.btn.soft,.btnl.ghost,button.ghost,.ibtn,.gicb,.gtok,.gpick):hover{transform:translateY(-1px)!important}
}
html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn,.ibtn,.gicb,.gtok,.gpick,.askfab,.cmfab,.tabbar a,button):active{transform:none!important;filter:none!important}
html.ui-nl :is(.btn,.btnl,.hhbtn,.fpbtn):where(:not(.ghost,.soft,.quiet,.danger,.lnk,.dlink)):active{background:var(--nl-btn-h)!important}

/* ---- G4 · numbers keep even widths; money in Sora 400, the accent blue ---- */
html.ui-nl body{font-variant-numeric:tabular-nums}
html.ui-nl :is(.jpay,.bdappay,.jmpay,.abpay,.money){font-family:var(--display)!important;font-weight:400!important;color:var(--accent)!important}
html.ui-nl :is(.jpay,.bdappay,.jmpay,.abpay,.money) small{font-family:var(--font);color:var(--muted)}

/* ---- G6 · no frosted blur behind any words (the bars, the hero, the fly-outs, the drawers are solid or painted); the only
   blur left is the page behind a drawer WHILE it is dragged (L13a) ---- */
html.ui-nl *:not(.drag){-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.ui-nl body::before{filter:none!important}   /* the glows are painted radial gradients, not a blurred layer */

/* ---- G7 · nothing drifts: no aura on the public pages and boards, no pointer light on the buttons ---- */
/* (the boards' drifting aura is simply not printed under the new look: jobs.php; the office stylesheet never names it, R63) */
html.ui-nl :is(button,.btnl)::before{background-image:none!important}

/* ---- G13 · no slim scroll rail (the owner: "no visible scroll bars") ---- */
html.ui-nl::after{display:none!important;content:none!important}

/* ---- G15 · a job's facts and extras are plain words (facts grey, extras blue words, no bubbles); map pins keep their bubbles ---- */
html.ui-nl :is(.jmchip,.jm-chip,.ext,.jxt,.jext,.cxchips span,.tbfacts span,.jfacts span){background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;margin-right:10px;color:var(--muted)}
html.ui-nl :is(.ext,.jxt,.jext,.jmchip.hl,.jm-chip.hl,.jmchip.x,.jm-chip.x){color:var(--on-accent-soft)!important;font-weight:600}
html.ui-nl :is(.jtype,.jkind,.jmtag,.chipname,.cpico){background:transparent!important;box-shadow:none!important;padding:0!important;border-radius:0!important;margin-right:10px}
html.ui-nl .jtype{color:var(--muted)!important}
html.ui-nl :is(.jkind,.jmtag){color:var(--on-accent-soft)!important;font-weight:600}

/* ---- G8a · BORDERLESS FLOATING FIELDS on every form (canvas Office10OrderEdit): no box, no outline, no underline. A grey
   label (14.5px, 600) floats over the value (ink); a choice (a drop-down, a picker, a date) shows its value in navy 600 with a
   small round pale blue chevron; an empty field shows its hint in grey. The only shape is a tint while the field is in use:
   faint grey on hover, soft blue on focus (the label turns blue, the caret shows); an error turns the label red with red words
   under it. The tint reaches 12px past the words, so field grids keep a 28px column gap. Checkboxes, radios, switches and the
   segmented controls keep their own style (G8); search bars stay pills (G1's filter tokens). ---- */
html.ui-nl :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select,textarea):not(:is(.g2q,.ck,.palline,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.abwrap,.pwwrap,.hsrch,.tsbar,.nlw) *){
  border:0!important;outline:0!important;box-shadow:none!important;background-color:transparent!important;border-radius:12px;color:var(--ink);font-size:17px;padding:10px 12px;min-height:44px;caret-color:var(--nl-label-f)}
html.ui-nl :is(input,textarea)::placeholder{color:var(--nl-hint);opacity:1}
html.ui-nl :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select,textarea):not(:is(.g2q,.ck,.palline,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.abwrap,.pwwrap,.hsrch,.tsbar,.nlw) *):hover{background-color:var(--nl-tint-h)!important}
html.ui-nl :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select,textarea):not(:is(.g2q,.ck,.palline,.gpkq,.tbbox,.tbfind,.bdsearch,.cmbox,.cmform,.chatf,.srch,.lkw,.abwrap,.pwwrap,.hsrch,.tsbar,.nlw) *):focus{background-color:var(--nl-tint-f)!important}
/* a choice: navy 600 and the round chevron */
html.ui-nl select:not([multiple]):not(:is(.g2q,.ck,.palline,.gpkq,.tbbox,.tbfind,.bdsearch,.tsbar) *){-webkit-appearance:none;appearance:none;color:var(--nl-on-btn);font-weight:600;
  background-image:var(--nl-chev)!important;background-repeat:no-repeat!important;background-position:right 8px center!important;background-size:26px 26px!important;padding-right:42px!important}
html.ui-nl :is(input[type=date],input[type=time],input[type=datetime-local],input[type=month]){color:var(--nl-on-btn);font-weight:600}
html.ui-nl select option{color:var(--ink);font-weight:400}
/* the label floats over the value: grey 14.5px, blue while the field is in use, red for an error */
html.ui-nl :is(.frow,.frow2>div,.gfld,.pair>div,.npair>div):is(:has(> input:not([type=checkbox],[type=radio],[type=hidden])),:has(> select),:has(> textarea)) > :is(label:not(.chk),span:first-child,small:first-child),
html.ui-nl label:not(.chk,.gpick,.g2q,.tsbar *):has(> :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea)){
  font-family:var(--font)!important;font-size:14.5px!important;font-weight:600!important;letter-spacing:0!important;text-transform:none!important;color:var(--nl-label)} /* design-ok: NL1.1 · G8a's floating label (canvas Office10OrderEdit: 14.5px, 600) */
html.ui-nl :is(.frow,.frow2>div,.gfld,.pair>div,.npair>div):focus-within > :is(label:not(.chk),span:first-child,small:first-child),
html.ui-nl label:not(.chk,.gpick,.g2q):focus-within{color:var(--nl-label-f)!important}
/* in a field grid the value lines up under its label and the tint reaches 12px past it on the left */
html.ui-nl :is(.frow,.frow2>div,.gfld,.pair>div,.npair>div,.pair>label,.npair>label,form.grid>label,.bkgrid>label,.abgrid>label,.cpsnames>label,form.cpsave>label,form.frm>label,div.grid>label,form.setf>label,form.pc>label) > :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea){margin-left:-12px;max-width:calc(100% + 12px)}
html.ui-nl :is(.frow,.gfld,label):has(> :is(input,select,textarea):is(:user-invalid,[aria-invalid="true"])),html.ui-nl :is(.frow,.gfld).err{color:var(--nl-bad)}
html.ui-nl :is(.frow,.gfld):has(> :is(input,select,textarea):is(:user-invalid,[aria-invalid="true"])) > :is(label,span:first-child){color:var(--nl-bad)!important}
/* field grids: a 28px column gap (the tint reaches 12px past the words on both sides) */
html.ui-nl :is(.frow2,form.grid,.pair,.npair,.bkgrid,.abgrid,.cpsnames,.gpair,.fgrid,.g2fp){column-gap:28px!important}
/* checkboxes and radios: navy when on; switches: soft blue when on (the solid accent, L13 fix above); drop zones: one dashed hairline */
html.ui-nl :is(input[type=checkbox],input[type=radio]){accent-color:var(--nl-on-btn)!important}
html.ui-nl :is(.cpdz,.uxdz){border:1.5px dashed var(--nl-dz)!important;background:transparent!important;box-shadow:none!important;border-radius:16px!important}

/* ---- G12 · empty states, toasts, loading and errors ---- */
/* empty: one line icon (no tile), one sentence, one button */
html.ui-nl .empty .emptyi{width:auto;height:auto;margin-bottom:10px}
html.ui-nl .empty .emptyi .ic{width:28px;height:28px}
html.ui-nl .empty{background:transparent!important;box-shadow:none!important}
/* toasts: a solid white pill at the bottom, Undo where it applies */
html.ui-nl .gtoast{background:var(--surface)!important;background-image:none!important;color:var(--ink)!important;box-shadow:var(--nl-toast-sh)!important;border-radius:999px!important}
html.ui-nl .gtoast .btn{background:transparent!important;box-shadow:none!important;color:var(--nl-on-btn)!important}
/* loading: still grey bars, nothing loops */
html.ui-nl .gbload{color:transparent!important;min-height:44px;background:linear-gradient(var(--nl-skel),var(--nl-skel)) 0 4px / 72% 12px no-repeat,linear-gradient(var(--nl-skel),var(--nl-skel)) 0 28px / 46% 12px no-repeat;border-radius:6px;animation:none!important}
/* errors: red words with a still dot, no box */
html.ui-nl :is(.note.bad,.note.fail,.note.err,.pnote.bad,.perr,p.err,div.err,span.err){background:transparent!important;box-shadow:none!important;border:0!important;color:var(--nl-bad)!important;padding-left:0!important;padding-right:0!important}
html.ui-nl :is(.note.bad,.note.fail,.note.err,.pnote.bad,.perr,p.err,div.err)::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin-right:8px;vertical-align:.12em}

/* the Look card (Settings) */
.lkh{margin-top:18px}
.lklist{list-style:none;margin:8px 0 12px;padding:0}
.lklist li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;box-shadow:inset 0 -1px 0 var(--divider)}
.lklist form{margin:0}
.lkrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.lkrow input{flex:1 1 260px;min-width:0}
.lkme{margin:0}/* ===== NL2 · THE OFFICE, SCREEN BY SCREEN (core/nl2.php; claude/BRIEF-NL-THE-NEW-LOOK-EVERYWHERE.md section 5 "NL2" and 10) ===== */

/* ---- TODAY (canvas Office1Today, OPh1Today): the numbers in a row with top lines (number first, its words under it), "Waiting
   on you" as the one hero on the left, the day's schedule open on the right ---- */
html.ui-nl .rib span{grid-row:2;font-family:var(--font)!important;text-transform:none!important;letter-spacing:0!important;font-size:16px!important;font-weight:600!important;color:var(--ink)!important}
html.ui-nl .rib b{grid-row:1}
html.ui-nl .rib span::first-letter{text-transform:uppercase}
html.ui-nl .tsstat span::first-letter{text-transform:uppercase}
html.ui-nl .rib.warn b{color:var(--nl-warn,var(--warn))}
html.ui-nl .rib.bad b{color:var(--nl-bad,var(--bad))}
html.ui-nl .rib.hot b{color:var(--accent)}
@media(min-width:1000px){
  html.ui-nl .ribbon.kpis{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px}
  html.ui-nl .myday{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);column-gap:32px}
  html.ui-nl .myday .mdside{order:-1}
}
@media(max-width:999px){ html.ui-nl .myday .mdwait{order:-1} }   /* a phone: the hero first, under the numbers (canvas OPh1Today) */
html.ui-nl .ribbon .rib:last-child{grid-column:auto}
html.ui-nl .mdwait.nlhero .chead{margin-bottom:6px}
html.ui-nl .mdwait.nlhero .hq{gap:0}
html.ui-nl .mdwait.nlhero .hqr{padding:14px 0!important;border-radius:0!important}
html.ui-nl .mdwait.nlhero .hqr:last-child{box-shadow:none!important}
/* pinned and recent: small light cards (G10), never grey boxes */
html.ui-nl .rchip{background:var(--nl-btn2)!important;border:0!important;border-radius:14px!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important}
html.ui-nl .rchip:hover{background:var(--surface)!important}

/* ---- the number tiles elsewhere (Timesheets, the platform's numbers): numbers with a line on top, no tiles ---- */
html.ui-nl .tsstats{gap:0 24px}
html.ui-nl .tsstat{display:flex;flex-direction:column;background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line)!important;padding:16px 0 12px!important}
html.ui-nl .tsstat b{order:-1;font-family:var(--display)!important;font-weight:400!important;font-size:36px;line-height:1.05;margin:0 0 6px} /* design-ok: NL2 · the numbers of a number row at 36px (L10a, as the ribbon) */
html.ui-nl .tsstat span{font-family:var(--font)!important;text-transform:none!important;letter-spacing:0!important;font-size:16px!important;font-weight:600!important;color:var(--ink)!important}

/* ---- JOBS (canvas Office4Jobs): the job board's cards become open columns with a line on top; the list's rows flat ---- */
html.ui-nl .jbgrid{column-gap:28px;row-gap:8px}
html.ui-nl .jbcard{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line)!important;padding:18px 0 20px!important;transform:none!important}
html.ui-nl .jbcard:hover{background:transparent!important;box-shadow:inset 0 1px 0 var(--nl-line)!important}
html.ui-nl .jbcard .jbimg{border-radius:14px}
html.ui-nl .jblist{gap:0}
html.ui-nl .jbrow{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;padding:14px 0!important}
html.ui-nl .jbrow:hover{background:var(--accent-soft)!important}

/* ---- rows that were small boxes: open rows with the fine line under each ---- */
html.ui-nl :is(.xrow,.pgrp,.rfq,.scriptbody){background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)!important;padding-left:0!important;padding-right:0!important}
html.ui-nl .xlist{gap:0!important}
html.ui-nl .aiscreen{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line-2)!important;padding:14px 0 0!important}
/* Sections' sticky first column: the page under it, a line under it, no tile */
html.ui-nl .secgrid .secrow{background:var(--bg)!important;border-radius:0!important;box-shadow:inset 0 -1px 0 var(--nl-line-2)}
/* the calendar's side panel and the conversations' columns: open, divided by one fine line */
@media(min-width:901px){ html.ui-nl .gside{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset -1px 0 0 var(--nl-line-2)!important;padding-left:0!important} }

/* ---- G10 · BOARDS THAT ARE CARDS BY NATURE (the Staffing Pipeline, the journeys' lanes, the compliance tiles): light cards
   (white .78, a hairline ring, no shadow stack, no card inside them), columns flat with one fine line between them ---- */
html.ui-nl .bcol{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset -1px 0 0 var(--nl-line-2)!important;padding:0 14px 0 0!important}
html.ui-nl .bcol + .bcol{padding-left:14px!important}
html.ui-nl .bcolh{border-top:0!important;background:transparent!important;box-shadow:none!important;padding-left:0!important}
html.ui-nl :is(.bcard,.jrcard,.doctile){background:var(--nl-btn2)!important;border:0!important;border-radius:16px!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important}
html.ui-nl :is(.bcard,.jrcard):hover{background:var(--surface)!important}
html.ui-nl .jrlane{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line)!important;padding:14px 0 0!important}
html.ui-nl .jrlanes{column-gap:20px}

/* ---- view switches and filter pills that were SOLID blue: the segmented track with a white knob, or a soft blue pill ---- */
html.ui-nl :is(.calswitch,.calviews,.calrows,.jdeseg){display:inline-flex;flex-wrap:nowrap;max-width:100%;overflow-x:auto;scrollbar-width:none;gap:4px;padding:4px;border:0!important;border-radius:999px!important;background:rgba(14,21,34,.05)!important;overflow:visible}
html.ui-nl[data-theme="dark"] :is(.calswitch,.calviews,.calrows,.jdeseg){background:rgba(255,255,255,.06)!important}
@media(prefers-color-scheme:dark){ html.ui-nl:not([data-theme="light"]) :is(.calswitch,.calviews,.calrows,.jdeseg){background:rgba(255,255,255,.06)!important} }
html.ui-nl :is(.calswitch,.calviews,.calrows) a,html.ui-nl .jdeseg label{border:0!important;border-radius:999px!important;color:var(--muted);background:transparent}
html.ui-nl :is(.calswitch,.calviews,.calrows) a:hover{background:var(--nl-tint-h)!important}
html.ui-nl :is(.calswitch,.calviews,.calrows) a.on,html.ui-nl .jdeseg label:has(input:checked){background:var(--surface)!important;color:var(--nl-on-btn)!important;box-shadow:0 4px 10px -6px rgba(20,40,80,.35)} /* design-ok: NL2 · G1's segmented knob */
html.ui-nl :is(.cmtabs,.cmfil,.smstabs,.stabs) a{background:var(--nl-btn2)!important;border:0!important;box-shadow:inset 0 0 0 1px var(--nl-btn2-ring)!important;color:var(--ink)!important}
html.ui-nl :is(.cmtabs,.cmfil,.smstabs,.stabs) a.on{background:var(--accent-soft)!important;box-shadow:none!important;color:var(--on-accent-soft)!important}
/* the activity timeline's mail dot was a solid blue disc with a white icon: a soft blue disc with a navy icon */
html.ui-nl .titem.mail .tdot{background:var(--accent-soft);color:var(--on-accent-soft)}

/* ---- CONVERSATIONS (canvas Office7Inbox): the list open with a line beside it; the open conversation is the one hero ---- */
html.ui-nl .cmside{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:inset -1px 0 0 var(--nl-line-2)!important}
html.ui-nl .cmmain:not(.nlhero){background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}
html.ui-nl .cmmain.nlhero{padding:0!important}

/* ---- SETTINGS (canvas Office14Settings; the brief's section 10, taken as drawn): the tab strip becomes a LEFT SUB-MENU with every
   one of today's settings pages at the same addresses (settings_tabs() marks its strip "setsub"; Classic draws it as before).
   On a computer the page is two columns: the sub-menu (sticky) and the page; on a phone it stays the sliding strip ---- */
@media(min-width:1100px){
  html.ui-nl .main:has(> nav.setsub){display:grid;grid-template-columns:236px minmax(0,1fr);column-gap:32px;row-gap:0;align-content:start}
  html.ui-nl .main:has(> nav.setsub) > *{grid-column:2;min-width:0}
  html.ui-nl .main:has(> nav.setsub) > :is(.ptitle,.sysbar,.flash,.note.top){grid-column:1 / -1}
  html.ui-nl .main:has(> nav.setsub) > :is(script,style,template,datalist,dialog){display:none}
  html.ui-nl .main > nav.sectabs.setsub{grid-column:1;grid-row:2 / span 80;align-self:start;position:sticky;top:calc(var(--hh) + var(--sat) + 18px);
    display:flex;flex-direction:column;flex-wrap:nowrap;gap:2px;width:auto;max-width:none;margin:0;padding:4px 16px 8px 0;border-radius:0;overflow:visible;
    background:transparent!important;box-shadow:inset -1px 0 0 var(--nl-line-2)!important}
  html.ui-nl nav.setsub a{justify-content:flex-start;min-height:42px;padding:0 12px;border-radius:12px;font-size:16px;font-weight:500;color:var(--ink)!important;background:transparent!important;box-shadow:none!important} /* design-ok: NL2 · the sub-menu's items at the rail's 16px (canvas Office14Settings) */
  html.ui-nl nav.setsub a:hover{background:var(--nl-tint-h)!important}
  html.ui-nl nav.setsub a.on{background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;font-weight:600;box-shadow:none!important}
  html.ui-nl nav.setsub .gpill{display:none!important}
  /* the page's open sections start at the sub-menu's line, not under it (no bleed to the left) */
  html.ui-nl .main:has(> nav.setsub) > :is(.card,.pc,.gpanel,section.glass,.ocard,.rside):where(:not(.nlhero)){margin-left:0!important;padding-left:0!important}
  html.ui-nl .main:has(> nav.setsub) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll,.tbl){margin-left:0}
  html.ui-nl .main:has(> nav.setsub) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > :is(.tblwrap,.tscroll,.tbl) :is(td,th):first-child{padding-left:12px}
  html.ui-nl .main:has(> nav.setsub) > :is(.card,.pc,section.glass):where(:not(.nlhero)) > .tbl{width:calc(100% + var(--nl-gut))}
}

/* ---- A LONG OFFICE FORM (canvas Office10OrderEdit): titled flat sections (nl2_fsec) and the floating Save bar (nl2_savebar) ---- */
html.ui-nl .nlfs{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);column-gap:32px;padding:22px 0 24px;margin:0;box-shadow:inset 0 1px 0 var(--nl-line)}
html.ui-nl .nlfs:first-of-type{margin-top:4px}
html.ui-nl .nlfsh h3{font-family:var(--display);font-weight:400;font-size:20px;line-height:1.25;margin:0 0 6px;color:var(--ink)} /* design-ok: NL2 · a form section's title (canvas Office10OrderEdit) */
html.ui-nl .nlfsh p{margin:0;color:var(--muted);font-size:15px;line-height:1.45} /* design-ok: NL2 · its one line (canvas Office10OrderEdit) */
html.ui-nl .nlfsb{display:flex;flex-direction:column;gap:14px;min-width:0}
html.ui-nl .nlfsb > :is(label,.pair,p,div){margin-top:0;margin-bottom:0}
html.ui-nl .nlfsb > label > :is(input:not([type=checkbox],[type=radio],[type=hidden]),select,textarea){margin-left:-12px;max-width:calc(100% + 12px)}
@media(max-width:820px){ html.ui-nl .nlfs{grid-template-columns:minmax(0,1fr);row-gap:12px;padding:20px 0} }
html.ui-nl .nlsavebar{position:sticky;bottom:16px;z-index:6;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  margin:18px 0 0;padding:12px 14px 12px 20px;border-radius:20px;background:var(--nl-bar);box-shadow:var(--nl-bar-sh)}
html.ui-nl .nlsbnote{color:var(--muted);font-size:15px} /* design-ok: NL2 · the Save bar's note (canvas Office10OrderEdit) */
html.ui-nl .nlsbacts{display:flex;gap:12px;margin-left:auto}
@media(max-width:820px){ html.ui-nl .nlsavebar{bottom:calc(88px + env(safe-area-inset-bottom,0px));padding:10px 10px 10px 16px} html.ui-nl .nlsbnote{display:none} }

/* ---- G9 · PHONE LISTS AS FLAT ROWS (canvas OPh3Candidates): a stacked table row is the name (and its avatar) with the row's own
   buttons on the right, then ONE line of facts under it, the fine line between rows; a cell that carries its own label (data-l,
   R5: bare numbers) keeps its labelled line ---- */
@media(max-width:600px){
  html.ui-nl .tbl.stack tr{display:flex!important;flex-wrap:wrap;align-items:center;row-gap:6px;padding:18px 0!important;width:100%}
  html.ui-nl .tbl.stack tr::after{content:"";order:2;flex:0 0 100%;height:0;display:block}
  html.ui-nl .tbl.stack td{padding:0!important;order:3;flex:0 1 auto;min-width:0;box-shadow:none!important}
  html.ui-nl .tbl.stack td:first-child,html.ui-nl .tbl.stack td.tck + td{order:0;flex:1 1 60%}
  html.ui-nl .tbl.stack td.tck{order:-1;float:none;padding:0 10px 0 0!important}
  html.ui-nl .tbl.stack td:last-child:not(:first-child):has(.btn,.ibtn,.rowmore,details,button){order:1;flex:0 0 auto;margin-left:12px}
  html.ui-nl .tbl.stack td:not(:first-child,.tck,.blk,[data-l]):not(:last-child:has(.btn,.ibtn,.rowmore,details,button)){color:var(--muted);font-size:15px;margin-right:10px}
  html.ui-nl .tbl.stack td:is(.blk,[data-l]){flex:0 0 100%}
  html.ui-nl .tbl.stack td:first-child .whoav{align-items:center}
}

/* ---- L7 · A STAGE (its colors chosen in Settings) as its words with a still dot, in light mode, when its words read on the page
   (stage_chip() marks it .stw); in dark mode, or with a light text color, it keeps its own pill (NL1, §234.3 item 5) ---- */
html.ui-nl[data-theme="light"] .chip.stw{background:transparent!important;padding:0!important;border-radius:0!important;font-weight:600}
html.ui-nl[data-theme="light"] .chip.stw::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin:0 6px 1px 0;vertical-align:middle}
@media(prefers-color-scheme:light){
  html.ui-nl:not([data-theme="dark"]) .chip.stw{background:transparent!important;padding:0!important;border-radius:0!important;font-weight:600}
  html.ui-nl:not([data-theme="dark"]) .chip.stw::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:currentColor;margin:0 6px 1px 0;vertical-align:middle}
}

/* ---- THE CANDIDATE RECORD (canvas Office3Record, row 8, redrawn VERTICAL as G2 has it): on a wide computer "On this page"
   stands at the left from the top, beside the head, and the head, the tabs and the sections run in the column to its right
   (the rail's grid is lifted into the page's own: .rpgrid0 becomes display:contents). Its fold to icons still works (.min). On
   other tabs, a narrower computer and a phone the record is as G2 built it ---- */
@media(min-width:1200px){
  html.ui-nl .main:has(> .rpgrid0){display:grid;grid-template-columns:236px minmax(0,1fr);column-gap:24px;row-gap:0;align-content:start}
  html.ui-nl .main:has(> .rpgrid0.min){grid-template-columns:84px minmax(0,1fr)}
  html.ui-nl .main:has(> .rpgrid0) > *{grid-column:2;min-width:0}
  html.ui-nl .main:has(> .rpgrid0) > :is(script,style,template){display:none}
  html.ui-nl .main > .rpgrid0{display:contents}
  html.ui-nl .main > .rpgrid0 > .rprail{grid-column:1;grid-row:1 / span 24;align-self:start;margin-top:0;box-shadow:inset -1px 0 0 var(--nl-line-2)!important;border-radius:0!important;padding-left:0!important}
  html.ui-nl .main > .rpgrid0 > .rpflow{grid-column:2;margin-top:var(--gap)}
  html.ui-nl .main:has(> .rpgrid0) > .rphead{margin-top:6px}
  html.ui-nl .main:has(> .rpgrid0) > .rpcrumb{justify-self:start}
}

/* ---- THE COMPLIANCE FILE's table: a missing requirement says so with its red dot and words (L7), not a pink row ---- */
html.ui-nl .cdrt tr.need,html.ui-nl .cdrt tr.need td{background:transparent!important}/* ===== NL3.1 · BUSY RECORDS, THE NEW JOB ORDER, THE CANDIDATE PROFILE (core/nl31.php; canvas rows 22, 23, 24) ===== */
@property --nlp{syntax:'<number>';inherits:false;initial-value:0}
@property --nlwb{syntax:'<color>';inherits:false;initial-value:transparent}

/* ---- L16 · the deep blue, as a pill (the current item) ---- */
html.ui-nl .nldeep{background:var(--nl-deep)!important;color:var(--nl-on-deep)!important;box-shadow:var(--nl-deep-sh)!important}

/* ================= THE CANDIDATE RECORD'S PROFILE (canvas CRLive) ================= */
/* the head: the one glass hero, the avatar in a deep blue completeness ring */
html.ui-nl .rphead.nlhero{padding:26px 28px!important;gap:16px 24px}
html.ui-nl .rphead .rpring.nlring{--nlp:0;width:92px;height:92px;padding:0;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--nl-deep-ink) calc(var(--nlp)*1%),var(--nl-line-2) 0);transition:--nlp .8s cubic-bezier(.2,.8,.2,1)}
html.ui-nl .rphead .nlring .rpav{width:78px;height:78px;border:0;background:linear-gradient(var(--nl-t-blue),var(--nl-t-blue)) var(--nl-solid);color:var(--nl-t-blue-ink);font-family:var(--display);font-weight:600;font-size:26px}
html.ui-nl .nlring.p0{--nlp:0}html.ui-nl .nlring.p1{--nlp:5}html.ui-nl .nlring.p2{--nlp:10}html.ui-nl .nlring.p3{--nlp:15}html.ui-nl .nlring.p4{--nlp:20}html.ui-nl .nlring.p5{--nlp:25}html.ui-nl .nlring.p6{--nlp:30}
html.ui-nl .nlring.p7{--nlp:35}html.ui-nl .nlring.p8{--nlp:40}html.ui-nl .nlring.p9{--nlp:45}html.ui-nl .nlring.p10{--nlp:50}html.ui-nl .nlring.p11{--nlp:55}html.ui-nl .nlring.p12{--nlp:60}html.ui-nl .nlring.p13{--nlp:65}
html.ui-nl .nlring.p14{--nlp:70}html.ui-nl .nlring.p15{--nlp:75}html.ui-nl .nlring.p16{--nlp:80}html.ui-nl .nlring.p17{--nlp:85}html.ui-nl .nlring.p18{--nlp:90}html.ui-nl .nlring.p19{--nlp:95}html.ui-nl .nlring.p20{--nlp:100}
html.ui-nl .rphead .rpid h1{font-family:var(--display);font-weight:400;font-size:30px;letter-spacing:-.01em;line-height:1.15} /* design-ok: NL3.1 · the name in Sora 30 (canvas CRLive) */
html.ui-nl .rphead .rpsub{font-size:16px;color:var(--nl-label)}
html.ui-nl .rpprg{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:8px 0 0}
html.ui-nl .rpprg b{font-family:var(--display);font-weight:400;font-size:24px;color:var(--nl-deep-ink);font-variant-numeric:tabular-nums} /* design-ok: NL3.1 · L16 the key number in deep blue */
html.ui-nl .rpprg span{font-size:15px;color:var(--nl-label)}
html.ui-nl .rpcc{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:10px;margin-top:2px}
html.ui-nl .rpc{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 6px 0 14px;border-radius:999px;background:var(--nl-btn2);box-shadow:0 1px 2px rgba(14,21,34,.06);font-size:15px;color:var(--nl-val);min-width:0;max-width:100%}
html.ui-nl .rpc.rpcpl{padding-right:14px}
html.ui-nl .rpc .ic{width:17px;height:17px;color:var(--nl-label);fill:none;stroke:currentColor;stroke-width:1.6;flex:none}
html.ui-nl .rpc .rpcv{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.ui-nl .rpcp{border:0;min-height:30px;padding:0 11px;border-radius:999px;background:var(--nl-btn);color:var(--nl-on-btn);font:inherit;font-size:13px;font-weight:600;cursor:pointer;transition:background .2s;flex:none}
html.ui-nl .rpcp:hover{background:var(--nl-btn-h)}
html.ui-nl .rpcp.ok{background:var(--nl-t-ok);color:var(--nl-t-ok-ink)}
html.ui-nl .rphead .rpmeta{margin-top:4px;gap:12px 24px}
html.ui-nl .rphead .rpmt{box-shadow:none!important;padding:0!important}
@media(max-width:760px){
  html.ui-nl .rphead.nlhero{padding:20px 18px!important}
  html.ui-nl .rphead .rpring.nlring{width:72px;height:72px;align-self:start}
  html.ui-nl .rphead .nlring .rpav{width:60px;height:60px;font-size:21px}
  html.ui-nl .rphead .rpid h1{font-size:26px}
  html.ui-nl .rpc{min-height:44px}
  html.ui-nl .rpcp{min-height:34px}
}

/* "On this page": the section you are reading is a deep blue pill with white words; it moves as you scroll */
html.ui-nl .rprail a.on,html.ui-nl .rpchips a.on{background:var(--nl-deep)!important;color:var(--nl-on-deep)!important;box-shadow:var(--nl-deep-sh)!important;font-weight:600}
html.ui-nl .rprail a.on .rpdot,html.ui-nl .rpchips a.on .rpdot{box-shadow:0 0 0 2px var(--nl-on-deep)}
html.ui-nl .rpdot.ok{background:var(--nl-ok)}html.ui-nl .rpdot.warn{background:var(--nl-dot-todo)}html.ui-nl .rpdot.mute{background:var(--nl-dot-wait)}
html.ui-nl .rpdot.pop{animation:nl31pop .45s cubic-bezier(.2,.9,.3,1.4)}
@keyframes nl31pop{0%{transform:scale(.2)}70%{transform:scale(1.5)}100%{transform:scale(1)}}
html.ui-nl .rpsec{scroll-margin-top:calc(var(--hh) + var(--sat) + 80px)}

/* THE COMPACT BAR: zero-height and sticky in the flow, the bar itself slides down once the head has left the screen; SOLID */
html.ui-nl .rpbarw{position:sticky;top:calc(var(--hh) + var(--sat));height:0;z-index:26;order:-1}
html.ui-nl .rpbar{position:absolute;left:0;right:0;top:0;height:60px;display:flex;align-items:center;gap:12px;padding:0 20px;border-radius:0 0 18px 18px;
  background:var(--nl-bar),var(--nl-solid);box-shadow:inset 0 -1px 0 var(--nl-line-2),0 12px 24px -22px rgba(20,40,80,.55);transform:translateY(-115%);opacity:0;pointer-events:none;
  transition:transform .35s cubic-bezier(.2,.8,.2,1),opacity .25s}
html.ui-nl .rpstuck .rpbar{transform:none;opacity:1}
html.ui-nl .rpbi{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:var(--nl-t-blue);color:var(--nl-t-blue-ink);font-family:var(--display);font-weight:600;font-size:13px;flex:none}
html.ui-nl .rpbn{font-size:16.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html.ui-nl .rpbs{font-size:15px;color:var(--nl-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html.ui-nl .rpbc{margin-left:auto;font-size:14.5px;font-weight:600;color:var(--nl-label);white-space:nowrap}
@media(max-width:1060px){
  html.ui-nl .rpchips{background:var(--nl-bar)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:inset 0 0 0 1px var(--nl-line-2),0 12px 24px -22px rgba(20,40,80,.55)!important}   /* a bar that stays is solid: nothing shows through */
  html.ui-nl .rpbar{height:52px;padding:0 14px;border-radius:0 0 14px 14px}
  html.ui-nl .rpbs,html.ui-nl .rpbc{display:none}
  html.ui-nl .rpstuck .rpchips{top:calc(var(--hh) + var(--sat) + 56px)}
  html.ui-nl .rpsec{scroll-margin-top:calc(var(--hh) + var(--sat) + 136px)}
}

/* EACH SECTION (L17: one fine line above it, nothing between its fields) */
html.ui-nl .rpflow > .rpsec{background:transparent!important;border-radius:0!important;box-shadow:inset 0 1px 0 var(--nl-line-2)!important;padding:30px 0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html.ui-nl .rpflow > .rpsec.editing{background:transparent!important}
html.ui-nl .rpflow{gap:0}
html.ui-nl .rpsht{gap:10px 14px}
html.ui-nl .rpsht .rpsico{order:0;width:44px;height:44px;border-radius:14px;transition:background .4s,color .4s}
html.ui-nl .rpsht .rpsico .ic{width:21px;height:21px;stroke-width:1.6}
html.ui-nl .rpsht .rpsico.t-ok{background:var(--nl-t-ok);color:var(--nl-t-ok-ink)}
html.ui-nl .rpsht .rpsico.t-warn{background:var(--nl-t-todo);color:var(--nl-t-todo-ink)}
html.ui-nl .rpsht .rpsico.t-mute{background:var(--nl-t-wait);color:var(--nl-t-wait-ink)}
html.ui-nl .rpsht h2{order:1;font-family:var(--display);font-weight:400;font-size:22px;letter-spacing:-.01em} /* design-ok: NL3.1 · a section's title in Sora 22 (canvas CRLive) */
html.ui-nl .rpsht .rpdot{order:2;width:8px;height:8px;margin-right:-6px}
html.ui-nl .rpsht .rpswd{order:3;font-size:15px;font-weight:600}
html.ui-nl .rpswd.t-ok{color:var(--nl-ok)}html.ui-nl .rpswd.t-warn{color:var(--nl-warn)}html.ui-nl .rpswd.t-mute{color:var(--nl-label)}
html.ui-nl .rpstools .rpedit{background:var(--nl-btn2)!important;color:var(--nl-val)!important;box-shadow:0 1px 2px rgba(14,21,34,.06),2px 6px 14px -10px rgba(20,40,80,.4)!important;min-height:40px}
html.ui-nl .rpstools .rpedit:hover{background:var(--nl-solid)!important}
/* the fields: a 3-column grid, wide ones span 2, every answer in a 36px slot so a value and an "+ Add" line up across a row */
html.ui-nl .rpflow .rpgrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 32px;margin-top:22px}
html.ui-nl .rpflow .rpfact{box-shadow:none!important;background:transparent!important;padding:0!important;border-radius:0!important;gap:6px;position:relative}
html.ui-nl .rpflow .rpfact > .lbl{font-family:var(--font);font-size:14.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--nl-label)} /* design-ok: NL3.1 · L18/L19 labels above, 14.5 600 */
html.ui-nl .rpflow .rpfact > b{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-height:36px;min-width:0;font-weight:400;font-size:17.5px;color:var(--nl-val);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
html.ui-nl .rpflow .rpfact.k > b{font-family:var(--display);font-size:21px;line-height:1.25;letter-spacing:-.01em;color:var(--nl-key)} /* design-ok: NL3.1 · L19 the key fields in the display face */
html.ui-nl .rpflow .rpfact > b a:not(.rpadd):not(.btn){color:inherit;text-decoration:none}
html.ui-nl .rpflow .rpfact > b a:not(.rpadd):not(.btn):hover{text-decoration:underline}
html.ui-nl .rpflow .rpfact .none{color:var(--nl-hint)}
html.ui-nl .rpadd{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:0 14px 0 10px;border-radius:999px;background:var(--nl-deep-soft);color:var(--nl-deep-ink);font-family:var(--font);font-size:15px;font-weight:600;text-decoration:none;transition:background .2s,transform .2s}
html.ui-nl .rpadd:hover{background:var(--nl-deep-soft-h);transform:translateY(-1px);text-decoration:none}
html.ui-nl .rppen{position:absolute;right:0;top:24px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--nl-btn);color:var(--nl-on-btn);opacity:0;transform:scale(.8);transition:opacity .2s,transform .2s}
html.ui-nl .rpfact:hover > .rppen,html.ui-nl .rppen:focus-visible{opacity:1;transform:none}
@media(hover:none){ html.ui-nl .rppen{display:none} }
@media(max-width:1180px){ html.ui-nl .rpflow .rpgrid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media(max-width:760px){ html.ui-nl .rpflow .rpgrid{grid-template-columns:minmax(0,1fr);gap:20px} html.ui-nl .rpadd{min-height:44px} html.ui-nl .rpstools .rpedit{min-height:44px} }
/* the address lines: one quiet line, amber without a ZIP, green with one */
html.ui-nl .rpnear{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:15px;font-weight:500}
html.ui-nl .rpnear::before{content:"";width:8px;height:8px;border-radius:50%;background:currentColor;flex:none}
html.ui-nl .rpnear.warn{color:var(--nl-warn)}html.ui-nl .rpnear.ok{color:var(--nl-ok)}html.ui-nl .rpnear.off{color:var(--nl-label)}
html.ui-nl .rpnear.ok.just{animation:nl31up .35s ease-out}
html.ui-nl .rplock{display:flex;align-items:flex-start;gap:10px;margin-top:18px;font-size:14.5px;color:var(--nl-label);line-height:1.45}
html.ui-nl .rplock svg{flex:none;margin-top:1px}
/* Role and experience: the resume as a light card with a small page drawing */
html.ui-nl .rpflow .gqrow.rprow.nldoc{margin-top:24px;padding:16px 18px;border-radius:18px;background:var(--nl-btn2);box-shadow:0 1px 2px rgba(14,21,34,.05),4px 12px 26px -20px rgba(20,40,80,.45);grid-template-columns:46px minmax(0,1fr) auto;gap:16px;transition:transform .25s,box-shadow .25s}
html.ui-nl .rpflow .gqrow.rprow.nldoc:hover{transform:translateY(-2px)}
html.ui-nl .rpdocpg{width:46px;height:58px;border-radius:8px;background:var(--nl-solid);box-shadow:0 1px 2px rgba(14,21,34,.1),2px 6px 12px -6px rgba(20,40,80,.35);display:flex;flex-direction:column;gap:4px;padding:9px 8px}
html.ui-nl .rpdocpg i{height:2px;border-radius:2px;background:var(--nl-line)}
html.ui-nl .rpdocpg i:first-child{height:3px;width:70%;background:var(--nl-deep-ink)}
html.ui-nl .rpdocpg i:last-child{width:80%}
/* edit in place: the fields become wells (L18), Save, Cancel and Undo stay */
html.ui-nl .rpflow .rpform{margin-top:20px}
/* after a save: the section glows a pale green for about a second */
html.ui-nl .rpsec.rpsaved{animation:nl31sv 1.2s ease-out}
@keyframes nl31sv{0%{background:var(--nl-glow-ok)}100%{background:transparent}}
@keyframes nl31up{from{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}

/* ================= L18 · FILL-OUT FIELDS ARE SOFT WHITE WELLS (this sprint's forms: the record's edit in place, the job order) ================= */
html.ui-nl :is(form.rpefrm,form.nlwells) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not(.gpknat),textarea):not(:is(.g2q,.palline,.gpkq,.tbbox,.jdxbar,.payamt,.nlw) *){
  --nlwb:var(--nl-well);background-color:var(--nlwb)!important;border:0!important;outline:0!important;border-radius:14px!important;box-shadow:var(--nl-well-sh)!important;min-height:50px;padding:12px 16px!important;
  margin-left:0!important;max-width:100%!important;font-size:17px;color:var(--ink);transition:background-color .25s,box-shadow .25s,transform .25s}
html.ui-nl :is(form.rpefrm,form.nlwells) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),textarea):not(:is(.g2q,.palline,.gpkq,.tbbox,.jdxbar,.payamt,.nlw) *):hover{--nlwb:var(--nl-well-f)}
html.ui-nl :is(form.rpefrm,form.nlwells) :is(input:not([type=checkbox],[type=radio],[type=hidden],[type=submit],[type=button],[type=reset],[type=image],[type=file],[type=range],[type=color]),select:not(.gpknat),textarea):not(:is(.g2q,.palline,.gpkq,.tbbox,.jdxbar,.payamt,.nlw) *):focus{--nlwb:var(--nl-well-f);box-shadow:var(--nl-well-sh-f)!important;transform:translateY(-1px)}
html.ui-nl :is(form.rpefrm,form.nlwells) .nlneed{animation:nl31need 1.4s ease-out}
@keyframes nl31need{0%{--nlwb:var(--nl-need)}100%{--nlwb:var(--nl-well)}}
html.ui-nl :is(form.rpefrm,form.nlwells) select:not([multiple]):not(.gpknat){background-position:right 12px center!important;padding-right:48px!important}
html.ui-nl :is(form.rpefrm,form.nlwells) .gfld > span:first-child{display:inline-flex;align-items:center;gap:6px}
html.ui-nl :is(form.rpefrm,form.nlwells) .gfld:has(> :is(input:not([type=checkbox],[type=radio],[type=hidden]):not(:placeholder-shown),textarea:not(:placeholder-shown))) > span:first-child::after{content:"";width:18px;height:18px;border-radius:50%;background:var(--nl-okck) center/18px 18px no-repeat;animation:nl31pop .38s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl :is(form.rpefrm,form.nlwells) .gfld{gap:6px}
/* a choice in a well: the picker's token (core/glass.php: every select under the new look opens the themed list) */
html.ui-nl :is(form.rpefrm,form.nlwells) .gtok.nlsel{background:var(--nl-well)!important;box-shadow:var(--nl-well-sh)!important;border-radius:14px!important;min-height:50px;padding:0 10px 0 16px!important;margin-left:0!important;width:100%}
html.ui-nl :is(form.rpefrm,form.nlwells) .gtok.nlsel:hover{background:var(--nl-well-f)!important}

/* ================= THE THEMED DROP-DOWN (row 22): every select under the new look ================= */
/* closed, as approved (G8a): the label above, the value in navy 600, the round pale chevron, no box */
html.ui-nl .gtok.nlsel{display:flex;align-items:center;gap:10px;width:100%;max-width:100%;min-height:44px;margin:0;padding:0 6px 0 12px;border:0;border-radius:12px;
  background:transparent!important;background-image:none!important;box-shadow:none!important;color:var(--nl-on-btn);font:inherit;font-size:17px;text-align:left;cursor:pointer;transition:background .2s}
html.ui-nl .gtok.nlsel:hover{background:var(--nl-tint-h)!important}
html.ui-nl .gtok.nlsel[aria-expanded="true"]{background:var(--nl-tint-f)!important}
html.ui-nl .gtok.nlsel .gtokv{flex:1 1 auto;min-width:0;font-weight:600;color:var(--nl-on-btn);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* a form's grid items may shrink below their words: a long drop-down value then ends in "…" inside its field instead of
   pushing the grid column past a phone's edge (an item's automatic minimum is its min-content; 238.3 item 1) */
html.ui-nl :is(.pair,.npair,.frow2,form.grid,div.grid,.bkgrid,.abgrid,.nlosb,.nlwgi) > *{min-width:0}
html.ui-nl .gtok.nlsel .gtokv.ph{color:var(--nl-hint);font-weight:400}
html.ui-nl .gtok.nlsel svg{width:26px;height:26px;padding:5px;border-radius:50%;background:var(--nl-btn);color:var(--nl-on-btn);flex:none;transition:transform .2s}
html.ui-nl .gtok.nlsel[aria-expanded="true"] svg{transform:rotate(180deg)}
html.ui-nl .gtok.nlsel:disabled{opacity:.55;cursor:default}
html.ui-nl .gtok.nlsel.nlselin{display:inline-flex;width:auto;vertical-align:middle}
/* in a field grid the value lines up under its label, as G8a's selects did (the tint reaches 12px past the words) */
html.ui-nl :is(.frow,.frow2>div,.gfld,.pair>div,.npair>div,.pair>label,.npair>label,form.grid>label,.bkgrid>label,.abgrid>label,.cpsnames>label,form.cpsave>label,form.frm>label,div.grid>label,form.setf>label,form.pc>label,.nlfsb>label) > .gtok.nlsel{margin-left:-12px;max-width:calc(100% + 12px);width:calc(100% + 12px)}
html.ui-nl :is(form.rpefrm,form.nlwells) :is(.gfld,label) > .gtok.nlsel{margin-left:0!important;max-width:100%!important;width:100%!important}
/* open on a computer: a solid white panel from the field, rows 48px, the chosen one soft blue with a check */
html.ui-nl .nlpk{position:fixed;z-index:calc(var(--z-drawer,900) + 5);min-width:240px;max-width:min(420px,calc(100vw - 24px));max-height:min(420px,calc(100vh - 32px));display:flex;flex-direction:column;
  background:var(--nl-solid);border-radius:14px;box-shadow:var(--nl-pop-sh);padding:6px;animation:nl31in .18s cubic-bezier(.2,.8,.2,1)}
html.ui-nl .nlpk .gpkq{margin:0 0 4px;flex:none}
html.ui-nl .nlpk .gpkl{overflow-y:auto;scrollbar-width:none;display:flex;flex-direction:column;gap:2px;padding:0}
html.ui-nl .nlpk .gpkl::-webkit-scrollbar{display:none}
html.ui-nl .nlpk .garow{min-height:48px;padding:0 14px;border-radius:10px;font-size:16.5px;color:var(--ink);background:transparent;box-shadow:none!important;justify-content:space-between}
html.ui-nl .nlpk .garow:hover,html.ui-nl .nlpk .garow:focus-visible{background:var(--nl-tint-h)}
html.ui-nl .nlpk .garow.on{background:var(--accent-soft);color:var(--nl-on-btn);font-weight:600}
html.ui-nl .nlpk .gpkg{padding:10px 14px 4px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--nl-label)}
@keyframes nl31in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ================= ROW 22 · BUSY RECORDS: question and answer rows without lines; the answer close to its question ================= */
html.ui-nl table.tbl.nlkv,html.ui-nl table.tbl.nlkv > tbody{display:block}
html.ui-nl table.tbl.nlkv{margin-left:0!important;margin-right:0!important;width:auto!important;padding:0!important}
html.ui-nl table.tbl.stack.nlkv tr{display:grid;grid-template-columns:minmax(0,440px) minmax(0,1fr);column-gap:28px;align-items:baseline;padding:11px 16px;margin:0 -16px;border-radius:14px;box-shadow:none!important;background:transparent!important}
html.ui-nl table.tbl.stack.nlkv tr:hover{background:var(--nl-tint-h)!important}
html.ui-nl table.tbl.stack.nlkv td{box-shadow:none!important;background:transparent!important;padding:0!important;border:0!important}
html.ui-nl table.tbl.stack.nlkv td:first-child{font-size:16px!important;color:var(--nl-label)!important}
html.ui-nl table.tbl.stack.nlkv td + td{font-size:17px;color:var(--ink)}
html.ui-nl table.tbl.stack.nlkv td::before{display:none!important}
html.ui-nl .rnq-card table.tbl.stack.nlkv tr{grid-template-columns:minmax(0,260px) minmax(0,1fr);column-gap:24px}
@media(max-width:700px){
  html.ui-nl table.tbl.stack.nlkv tr{display:flex;flex-direction:column;gap:3px;padding:10px 0;margin:0}
  html.ui-nl table.tbl.stack.nlkv td{flex:none!important;order:0!important;margin:0!important;width:auto!important}
  html.ui-nl table.tbl.stack.nlkv td:first-child{font-size:15px!important}
}
html.ui-nl .rpqa.rpgrid{grid-template-columns:minmax(0,440px) minmax(0,1fr)!important;gap:0 28px!important}
html.ui-nl .rpqa .rpfact{display:contents}
html.ui-nl .rpqa .rpfact > .lbl{padding:11px 0;font-size:16px;color:var(--nl-label)}
html.ui-nl .rpqa .rpfact > b{padding:11px 0;min-height:0;font-size:17px;font-weight:500;color:var(--ink)}
@media(max-width:700px){ html.ui-nl .rpqa.rpgrid{grid-template-columns:minmax(0,1fr)!important} html.ui-nl .rpqa .rpfact > .lbl{padding:10px 0 0} html.ui-nl .rpqa .rpfact > b{padding:3px 0 10px} }
/* THE BAR THAT STAYS AT THE TOP while scrolling (record heads): solid, a fine line and a soft shadow under it; nothing shows through */
html.ui-nl .rtabs.stuck,html.ui-nl .rptabs.rpstick.stuck{background:var(--nl-bar)!important;background-color:var(--nl-solid)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;
  box-shadow:inset 0 -1px 0 var(--nl-line),0 12px 24px -22px rgba(20,40,80,.55)!important;border-radius:0 0 18px 18px}
html.ui-nl .rtabs.stuck .rtabs-i{box-shadow:none}

/* ================= THE ORDERS LIST (canvas JOOrders) ================= */
html.ui-nl .nlonum{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:28px;margin:6px 0 26px}
html.ui-nl .nlonum > div{box-shadow:inset 0 1px 0 var(--nl-line);padding-top:14px;min-width:0}
html.ui-nl .nlonum b{display:block;font-family:var(--display);font-weight:400;font-size:32px;line-height:1.05;font-variant-numeric:tabular-nums} /* design-ok: NL3.1 · the number row (canvas JOOrders) */
html.ui-nl .nlonum b.warn{color:var(--nl-warn)}html.ui-nl .nlonum b.bad{color:var(--nl-bad)}html.ui-nl .nlonum b.ok{color:var(--nl-ok)}
html.ui-nl .nlonum span{display:flex;align-items:center;gap:6px;font-weight:600;font-size:15px;margin-top:6px;color:var(--ink)}
html.ui-nl .nlonum span i{width:8px;height:8px;border-radius:50%;flex:none}
html.ui-nl .nlonum span i.warn{background:var(--nl-dot-todo)}html.ui-nl .nlonum span i.bad{background:var(--nl-dot-bad)}html.ui-nl .nlonum span i.ok{background:var(--nl-ok)}
html.ui-nl .nlonum small{display:block;font-size:13.5px;color:var(--nl-label);margin-top:2px}
@media(max-width:760px){ html.ui-nl .nlonum{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px} }
html.ui-nl .ochips .chip.on{background:var(--accent-soft)!important;color:var(--on-accent-soft)!important;box-shadow:none!important}
html.ui-nl .ochips a.chip{background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-line-2);color:var(--nl-on-btn2);font-weight:600}
/* the rows: the same five columns on every row (a tile, the order, filled, the kind, the score) */
html.ui-nl a.srow.nlorow{display:grid;grid-template-columns:48px minmax(0,1fr) 140px 170px 64px;column-gap:18px;align-items:center;padding:16px 16px;margin:0 -16px;border:0;border-radius:16px;background:transparent}
html.ui-nl a.srow.nlorow + a.srow.nlorow{box-shadow:inset 0 1px 0 var(--nl-line-2)}
html.ui-nl a.srow.nlorow:hover{background:var(--nl-tint-h)}
html.ui-nl a.srow.nlorow::before{content:attr(data-ini);width:48px;height:48px;border-radius:14px;display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:15px;background:var(--nl-t-blue);color:var(--nl-t-blue-ink);grid-column:1;grid-row:1/4}
html.ui-nl a.srow.nlorow.tsand::before{background:var(--nl-t-todo);color:var(--nl-t-todo-ink)}
html.ui-nl a.srow.nlorow.tslate::before{background:var(--nl-t-slate);color:var(--nl-t-slate-ink)}
html.ui-nl a.srow.nlorow > span:first-child{display:contents}
html.ui-nl .nlorow .nlot{grid-column:2;grid-row:1;display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:17px}
html.ui-nl .nlorow .nlot strong{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html.ui-nl .nlorow em.nlom{display:contents}
html.ui-nl .nlorow .nlofac{grid-column:2;grid-row:2;font-size:14.5px;color:var(--nl-label);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
html.ui-nl .nlorow .nlosep{display:none}
html.ui-nl .nlorow .nlofill{grid-column:3;grid-row:1/4;display:flex;flex-direction:column;gap:6px;font-size:14.5px;color:var(--nl-label)}
html.ui-nl .nlorow .nlofill::before{content:"";display:block;height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) var(--nlf),var(--nl-line-2) 0)}
html.ui-nl .nlofill{--nlf:0%}html.ui-nl .nlofill.f1{--nlf:10%}html.ui-nl .nlofill.f2{--nlf:20%}html.ui-nl .nlofill.f3{--nlf:30%}html.ui-nl .nlofill.f4{--nlf:40%}html.ui-nl .nlofill.f5{--nlf:50%}html.ui-nl .nlofill.f6{--nlf:60%}html.ui-nl .nlofill.f7{--nlf:70%}html.ui-nl .nlofill.f8{--nlf:80%}html.ui-nl .nlofill.f9{--nlf:90%}html.ui-nl .nlofill.f10{--nlf:100%}
html.ui-nl .nlorow .nloapp{grid-column:2;grid-row:2;justify-self:end;display:none}
html.ui-nl .nlorow em.nlowhy{grid-column:2;grid-row:3;display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;font-style:normal;color:var(--nl-warn);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.ui-nl .nlorow em.nlowhy::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--nl-dot-todo);flex:none}
html.ui-nl .nlorow.hot em.nlowhy{color:var(--nl-bad)}html.ui-nl .nlorow.hot em.nlowhy::before{background:var(--nl-dot-bad)}
html.ui-nl .nlorow > .chip:not(.nlokind){grid-column:5;grid-row:1/4;justify-self:end;background:transparent!important;box-shadow:none!important;padding:0!important;font-family:var(--display);font-weight:400;font-size:22px;color:var(--nl-label)}
html.ui-nl .nlorow > .chip.warn:not(.nlokind){color:var(--nl-warn)!important}html.ui-nl .nlorow > .chip.bad:not(.nlokind){color:var(--nl-bad)!important}
html.ui-nl .nlorow > .nlokind,html.ui-nl .nlorow > .chip:last-child{grid-column:4;grid-row:1/4;justify-self:start;background:transparent!important;box-shadow:none!important;padding:0!important;font-size:15px;font-weight:600;color:var(--ink);white-space:normal;height:auto;line-height:1.3}
html.ui-nl a.srow.nlorow > .chip.nlokind{white-space:nowrap}   /* the kind on one line (a chip never breaks; out-ranks .chip:last-child) */
html.ui-nl .nlorow > .chip::before{display:none!important}
html.ui-nl .nlohd{display:grid;grid-template-columns:48px minmax(0,1fr) 140px 170px 64px;column-gap:18px;padding:0 0 8px;margin-top:8px;box-shadow:inset 0 -1px 0 var(--nl-line);font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nl-label)}
html.ui-nl .nlohd span:last-child{text-align:right}
@media(max-width:760px){
  html.ui-nl a.srow.nlorow{grid-template-columns:44px minmax(0,1fr) auto;column-gap:14px;padding:14px 0;margin:0}
  html.ui-nl a.srow.nlorow::before{width:44px;height:44px}
  html.ui-nl .nlorow .nlofill{grid-column:2;grid-row:4;flex-direction:row;align-items:center}
  html.ui-nl .nlorow .nlofill::before{width:80px;flex:none}
  html.ui-nl .nlorow > .nlokind,html.ui-nl .nlorow > .chip:last-child{grid-column:2;grid-row:5;white-space:nowrap}
  html.ui-nl .nlorow > .chip:not(.nlokind){grid-column:3}
  html.ui-nl .nlohd{display:none}
}
/* the page: the list and the form on the left, "the two families" as the screen's one floating glass card on the right; under
   1180px ONE column (Classic's 2fr / 3fr grid left the form a 276px column at 1024), the card after the list */
html.ui-nl .jwrap.nlolist{grid-template-columns:minmax(0,1fr)}
@media(min-width:1180px){
  html.ui-nl .jwrap.nlolist{grid-template-columns:minmax(0,1fr) 340px;column-gap:40px}
  html.ui-nl .jwrap.nlolist > div:first-child{display:contents}
  html.ui-nl .jwrap.nlolist > div:first-child > *{grid-column:1;min-width:0}
  html.ui-nl .jwrap.nlolist > div:first-child > .nlofw{grid-column:1/-1}
  html.ui-nl .jwrap.nlolist > #order-rec{grid-column:2;grid-row:1;align-self:start;margin-top:4px}
}
html.ui-nl #order-rec .nlfam{padding:26px 26px 22px!important}
html.ui-nl .nlfam .nlfcap{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nl-label)}
html.ui-nl .nlfam h2{font-family:var(--display);font-weight:400;font-size:24px;margin:6px 0 0} /* design-ok: NL3.1 · the floating card's title (canvas JOOrders) */
html.ui-nl .nlfam .nlfr{display:flex;gap:14px;margin-top:20px}
html.ui-nl .nlfam .nlfr + .nlfr{box-shadow:inset 0 1px 0 var(--nl-line-2);padding-top:18px;margin-top:18px}
html.ui-nl .nlfam .nlfi{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;background:var(--nl-t-blue);color:var(--nl-t-blue-ink)}
html.ui-nl .nlfam .nlfi.sand{background:var(--nl-t-todo);color:var(--nl-t-todo-ink)}
html.ui-nl .nlfam .nlfr p{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
html.ui-nl .nlfam .nlfr b{font-size:16.5px}
html.ui-nl .nlfam .nlfnote{margin:18px 0 0;font-size:14px;color:var(--nl-label)}/* ================= NEW JOB ORDER (canvas JONewOrderLive) ================= */
html.ui-nl .nlofw{margin:44px 0 0;padding:30px 0 0;box-shadow:inset 0 1px 0 var(--nl-line);scroll-margin-top:calc(var(--hh) + var(--sat) + 12px)}
html.ui-nl .nlofw > .nlofcap{font-size:14.5px;font-weight:600;color:var(--nl-label)}
html.ui-nl .nlofw > h2{font-family:var(--display);font-weight:400;font-size:34px;letter-spacing:-.01em;margin:2px 0 0;line-height:1.15} /* design-ok: NL3.1 · the form's title (canvas JONewOrderLive) */
html.ui-nl .nlsteps{display:flex;align-items:center;gap:14px;margin:26px 0 0;max-width:calc(100% - 428px)}
html.ui-nl .nlstep{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:600;font-size:15px;color:var(--nl-label);white-space:nowrap;border:0;background:transparent;padding:6px 8px;margin:-6px -8px;border-radius:999px;cursor:pointer;min-height:44px;transition:background .2s,color .2s}
html.ui-nl .nlstep:hover{background:var(--nl-tint-h)}
html.ui-nl .nlstep i{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-style:normal;font-size:13.5px;background:rgba(14,21,34,.06);color:var(--muted);transition:background .35s,color .35s,box-shadow .35s}
html.ui-nl .nlstep i .c{display:none}
html.ui-nl .nlstep.done i{background:var(--nl-t-ok);color:var(--nl-t-ok-ink)}
html.ui-nl .nlstep.done i .n{display:none}
html.ui-nl .nlstep.done i .c{display:block;animation:nl31pop .38s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl .nlstep.now{color:var(--ink)}
html.ui-nl .nlstep.now i{background:var(--nl-deep);color:var(--nl-on-deep);box-shadow:0 0 0 6px var(--nl-deep-soft),var(--nl-deep-sh)}
html.ui-nl .nlln{flex:1;min-width:16px;height:2px;border-radius:2px;background:var(--nl-line-2);position:relative;overflow:hidden}
html.ui-nl .nlln b{position:absolute;inset:0;background:var(--nl-ok-line);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
html.ui-nl .nlln.on b{transform:scaleX(1)}
html.ui-nl .nlofg{display:grid;grid-template-columns:minmax(0,1fr) 380px;column-gap:48px;align-items:start;margin-top:18px}
html.ui-nl .nlofc{min-width:0}
html.ui-nl .nlos{display:grid;grid-template-columns:minmax(0,1fr);row-gap:18px;padding:26px 0;box-shadow:inset 0 1px 0 var(--nl-line-2);scroll-margin-top:calc(var(--hh) + var(--sat) + 20px)}
html.ui-nl .nlos[hidden]{display:none}
html.ui-nl .nlosh{display:flex;gap:14px;align-items:flex-start;min-width:0}
html.ui-nl .nlosh h3{margin:0;font-family:var(--display);font-weight:400;font-size:19px;line-height:1.3} /* design-ok: NL3.1 · a section's title (canvas JONewOrderLive) */
html.ui-nl .nlosh p{margin:6px 0 0;font-size:14.5px;color:var(--nl-label);line-height:1.45}
@media(min-width:1600px){ html.ui-nl .nlos{grid-template-columns:200px minmax(0,1fr);column-gap:32px;row-gap:0} }
html.ui-nl .nlico{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;flex:none;transition:background .35s,color .35s}
html.ui-nl .nlico.blue{background:var(--nl-t-blue);color:var(--nl-t-blue-ink)}
html.ui-nl .nlico.sand{background:var(--nl-t-todo);color:var(--nl-t-todo-ink)}
html.ui-nl .nlico .c{display:none}
html.ui-nl .nlico.ok{background:var(--nl-t-ok);color:var(--nl-t-ok-ink)}
html.ui-nl .nlico.ok .g{display:none}
html.ui-nl .nlico.ok .c{display:block;animation:nl31pop .38s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl .nlosb{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;align-items:start;min-width:0}
html.ui-nl .nlosb > *{grid-column:1/-1;margin:0!important;min-width:0}
html.ui-nl .nlosb > .c1{grid-column:span 1}html.ui-nl .nlosb > .c2{grid-column:span 2}
html.ui-nl .nlosb > label,html.ui-nl .nlosb > .nlwf{display:flex;flex-direction:column;gap:6px}
html.ui-nl .nlosb .pair{display:contents}
html.ui-nl .nlosb .pair > *{grid-column:span 1;margin:0}
html.ui-nl .nlosb label.chk{flex-direction:row;align-items:flex-start;gap:12px;font-size:16px;font-weight:400!important;color:var(--muted)!important;min-height:44px;padding-top:10px}
html.ui-nl .nlosb label.chk input{width:20px;height:20px;margin:1px 0 0;flex:none}
html.ui-nl .nlosb p.small{grid-column:1/-1;margin:0;color:var(--nl-label)}
/* What kind: two tiles, real radios */
html.ui-nl .nlkinds{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
html.ui-nl .nlkind{position:relative;display:flex!important;flex-direction:row!important;gap:12px;align-items:flex-start;padding:16px;border-radius:16px;background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-line-2);cursor:pointer;
  color:var(--ink)!important;font-size:16px!important;font-weight:400!important;transition:background .25s,box-shadow .25s,transform .25s}
html.ui-nl .nlkind:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1px var(--nl-line-2),3px 12px 24px -18px rgba(20,40,80,.5)}
html.ui-nl .nlkind:has(input:checked){background:var(--nl-solid);box-shadow:inset 0 0 0 1px var(--accent-soft),0 1px 2px rgba(14,21,34,.05),4px 14px 26px -16px rgba(20,40,80,.5)}
html.ui-nl .nlkind:has(input:focus-visible){box-shadow:0 0 0 3px var(--nl-deep-soft-h)}
html.ui-nl .nlkind input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
html.ui-nl .nlkind .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;flex:none;background:var(--nl-t-blue);color:var(--nl-t-blue-ink)}
html.ui-nl .nlkind.opp .ic{background:var(--nl-t-todo);color:var(--nl-t-todo-ink)}
html.ui-nl .nlkind b{display:block;font-size:16.5px;font-weight:600}
html.ui-nl .nlkind small{display:block;font-size:14.5px;color:var(--nl-label);margin-top:2px}
html.ui-nl .nlkind .nlradio{margin-left:auto;width:20px;height:20px;border-radius:50%;box-shadow:inset 0 0 0 1.5px var(--nl-line);display:grid;place-items:center;flex:none;transition:box-shadow .25s}
html.ui-nl .nlkind .nlradio::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--nl-on-btn);transform:scale(0);transition:transform .25s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl .nlkind:has(input:checked) .nlradio{box-shadow:inset 0 0 0 1.5px var(--nl-on-btn)}
html.ui-nl .nlkind:has(input:checked) .nlradio::after{transform:scale(1)}
/* The job: the title, "Often posted:" */
html.ui-nl .nlpicks{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:-6px!important}
html.ui-nl .nlpicks > span{font-size:14px;color:var(--nl-label);margin-right:4px}
html.ui-nl .nlpick{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:999px;border:0;font:inherit;font-weight:600;font-size:14.5px;color:var(--nl-on-btn2);background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-line-2);cursor:pointer;transition:background .2s,color .2s,transform .2s}
html.ui-nl .nlpick:hover{background:var(--nl-solid);color:var(--nl-on-btn);transform:translateY(-1px)}
@media(max-width:760px){ html.ui-nl .nlpick{min-height:44px} }
/* Where: the address on two columns, the simple map in the third */
html.ui-nl .nlwhere{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 20px;align-items:start}
html.ui-nl .nlwhere .owhere{display:contents}
html.ui-nl .nlwhere .owhere > label.chk{grid-column:1/-1}
html.ui-nl .nlwhere .oaddr,html.ui-nl .nlwhere .oaddr[hidden]{display:block;grid-column:1/3;grid-row:2;transition:opacity .3s,filter .3s}
html.ui-nl .nlwhere:has(.oRemote:checked) .oaddr{opacity:.45;filter:grayscale(.6);pointer-events:none}
html.ui-nl .nlwhere .abox{margin:0}
html.ui-nl .nlwhere .abox .abq{display:flex;flex-direction:column;gap:6px}
html.ui-nl .nlwhere .abox .abwrap{position:relative;display:block}
html.ui-nl form.nlwells .nlwhere .abox .abwrap input{padding-left:44px!important}
html.ui-nl .nlwhere .abox .abwrap::before{content:"";position:absolute;left:14px;top:15px;width:19px;height:19px;z-index:1;background:var(--nl-label);-webkit-mask:var(--nl-pin-mask) center/19px 19px no-repeat;mask:var(--nl-pin-mask) center/19px 19px no-repeat}
html.ui-nl .nlwhere .abox .abgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 20px;margin-top:16px}
html.ui-nl .nlwhere .abox .abgrid > label{display:flex;flex-direction:column;gap:6px}
html.ui-nl .nlwhere .abox .ablist{position:absolute;z-index:30;width:min(520px,100%);background:var(--nl-solid);border:0;border-radius:14px;box-shadow:var(--nl-pop-sh);padding:6px}
html.ui-nl .nlwhere .abox .abnote{margin:10px 0 0}
html.ui-nl .nlmap{grid-column:3;grid-row:2;align-self:stretch;min-height:200px;margin-top:26px;border-radius:18px;overflow:hidden;position:relative;background:var(--nl-map);box-shadow:inset 0 0 0 1px var(--nl-line-2);transition:opacity .3s,filter .3s}
html.ui-nl .nlwhere:has(.oRemote:checked) .nlmap{opacity:.45;filter:grayscale(.6)}
html.ui-nl .nlmapst{position:absolute;inset:0;width:100%;height:100%}
html.ui-nl .nlmapst .r1{stroke:var(--nl-map-road);stroke-width:10}html.ui-nl .nlmapst .r2{stroke:var(--nl-map-road);stroke-width:4}
html.ui-nl .nlmap .nlpin,html.ui-nl .nlmap .nlring2,html.ui-nl .nlmap .nllbl{display:none}
html.ui-nl .nlmap .nlring2{position:absolute;left:calc(50% - 46px);top:calc(50% - 50px);width:92px;height:92px;border-radius:50%;background:var(--accent-soft);border:1.5px dashed var(--nl-line)}
html.ui-nl .nlmap .nlpin{position:absolute;left:calc(50% - 13px);top:calc(50% - 36px);width:26px;height:26px;border-radius:50% 50% 50% 0;background:var(--nl-pin);transform:rotate(-45deg);box-shadow:3px 8px 14px -6px rgba(20,40,80,.6)}
html.ui-nl .nlmap .nllbl{position:absolute;left:12px;bottom:10px;padding:4px 10px;border-radius:999px;background:var(--nl-solid);font-size:13px;font-weight:600;color:var(--muted)}
html.ui-nl .nlmap .nlhint{position:absolute;left:12px;right:12px;bottom:12px;padding:8px 10px;border-radius:12px;background:var(--nl-solid);font-size:13px;font-weight:600;color:var(--nl-label);text-align:center}
html.ui-nl .nlmap.has .nlpin{display:block;animation:nl31drop .6s cubic-bezier(.2,.9,.3,1.25) both}
html.ui-nl .nlmap.has .nlring2{display:block;animation:nl31ripple .9s cubic-bezier(.2,.8,.2,1) .25s both}
html.ui-nl .nlmap.has .nllbl{display:inline-block;animation:nl31up .3s ease-out .5s both}
html.ui-nl .nlmap.has .nlhint{display:none}
html.ui-nl .nlmap .nlreal{position:absolute;inset:0;display:none}
html.ui-nl .nlmap.real .nlreal{display:block}
html.ui-nl .nlmap.real .nlreal .sdmap{height:100%;min-height:0;border-radius:0}
html.ui-nl .nlmap.real .nlreal .sdm-tiles img{filter:saturate(.35) brightness(1.06)}
@keyframes nl31drop{0%{transform:translateY(-46px) rotate(-45deg);opacity:0}60%{transform:translateY(3px) rotate(-45deg);opacity:1}100%{transform:translateY(0) rotate(-45deg);opacity:1}}
@keyframes nl31ripple{0%{transform:scale(.2);opacity:0}100%{transform:scale(1);opacity:1}}
/* When and pay: start date, start time, the Shift length tile spanning both rows; end date, end time; pay and the weekly figure */
html.ui-nl .nlhide{display:none!important}
/* The dates, the times and the Shift length tile sit in their own box (.nlwg), laid out by the box's OWN width (a container
   query), so the year and the AM / PM always fit, whatever the page around them does: one column under 400px; two (dates left,
   times right, the tile under them) from 400px; three (the tile beside, spanning both rows) from 600px. New and edit alike. */
html.ui-nl .nlwg{container-type:inline-size;grid-column:1/-1;min-width:0}
html.ui-nl .nlwgi{display:grid;grid-template-columns:minmax(0,1fr);gap:16px 20px;align-items:start}
html.ui-nl .nlwgi .nllen{margin-top:0!important;order:5}
@container (min-width:400px){
  html.ui-nl .nlwgi{grid-template-columns:repeat(2,minmax(0,1fr))}
  html.ui-nl .nlwgi .sd{grid-column:1;grid-row:1}html.ui-nl .nlwgi .st{grid-column:2;grid-row:1}
  html.ui-nl .nlwgi .ed{grid-column:1;grid-row:2}html.ui-nl .nlwgi .et{grid-column:2;grid-row:2}
  html.ui-nl .nlwgi .nllen{grid-column:1/-1;grid-row:3}
}
@container (min-width:600px){
  html.ui-nl .nlwgi{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr) minmax(0,.9fr)}
  html.ui-nl .nlwgi .nllen{grid-column:3;grid-row:1/3;margin-top:26px!important}
}
html.ui-nl .nlwhen:not(.shift) .nlwgi .sd{grid-column:1/-1;max-width:340px}
html.ui-nl .nllen{align-self:stretch;margin-top:26px!important;border-radius:18px;background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-line-2);padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:4px;transition:background .3s}
html.ui-nl .nllen .cap{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nl-label)}
html.ui-nl .nllen b{font-family:var(--display);font-weight:400;font-size:30px;color:var(--nl-deep-ink);letter-spacing:-.01em;font-variant-numeric:tabular-nums} /* design-ok: NL3.1 · L16 the shift length, a key number */
html.ui-nl .nllen.empty b{color:var(--nl-hint);font-size:20px}
html.ui-nl .nllen.bad b{color:var(--nl-bad);font-size:20px}
html.ui-nl .nllen span{font-size:14.5px;color:var(--muted)}
html.ui-nl .nllen.go{animation:nl31up .3s ease-out}
html.ui-nl .nlweek{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;min-height:44px}
html.ui-nl .nlweek b{font-family:var(--display);font-weight:400;font-size:30px;color:var(--nl-deep-ink);font-variant-numeric:tabular-nums} /* design-ok: NL3.1 · L16 the weekly pay, a key number */
html.ui-nl .nlweek span{font-size:15px;color:var(--nl-label)}
html.ui-nl .nlweek[hidden]{display:none}
html.ui-nl .nlosb fieldset.payrow{border:0;padding:0;margin:0;min-width:0}
html.ui-nl .nlosb fieldset.payrow legend{font-size:14.5px;font-weight:600;color:var(--nl-label);padding:0 0 6px}
html.ui-nl .nlosb .payamt{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
html.ui-nl .nlosb .payamt input{background-color:var(--nl-well)!important;border-radius:14px!important;box-shadow:var(--nl-well-sh)!important;min-height:50px;padding:12px 16px!important;margin:0!important;max-width:160px}
html.ui-nl .nlosb .payamt .gtok.nlsel{width:auto;max-width:260px;margin:0}
/* the floating Save bar: Create and Clear the form; on a phone its note says what is left */
html.ui-nl .nlofw .nlsavebar{margin-top:26px}
@media(min-width:821px){ html.ui-nl body:has(.cmfab) .nlsavebar{margin-right:76px} }   /* the bar's buttons clear the floating chat button */
@media(max-width:820px){
  html.ui-nl .nlofw .nlsavebar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 10px;padding:10px 12px 12px 16px}
  html.ui-nl body:has(.cmfab) .nlofw .nlsavebar{margin-right:64px}
  html.ui-nl .nlofw .nlsbnote{display:block;font-size:14.5px;font-weight:600;color:var(--nl-warn)}
  html.ui-nl .nlofw .nlsbacts{display:contents}
  html.ui-nl .nlofw .nlsbacts [data-nlclear]{grid-column:2;grid-row:1;min-height:44px;padding:0 6px}
  html.ui-nl .nlofw .nlsbacts [type=submit]{grid-column:1/-1;grid-row:2;width:100%}
}
html.ui-nl .nlofw .nlsbnote{font-size:15px}
/* THE PREVIEW CARD: the one glass hero, sticky beside the form */
html.ui-nl .nlpv{position:sticky;top:calc(var(--hh) + var(--sat) + 24px);align-self:start;margin-top:8px}
html.ui-nl .nlpvcap{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--nl-label);margin:0 0 12px 4px}
html.ui-nl .nlpvc.nlhero{position:relative;overflow:hidden;padding:0!important}
html.ui-nl .nlgrain{position:absolute;inset:0;opacity:.07;mix-blend-mode:multiply;pointer-events:none}
html.ui-nl .nlpvb{height:140px;position:relative;background:var(--nl-pv-banner)}
html.ui-nl .nlpvw{position:absolute;inset:0;width:100%;height:100%}
html.ui-nl .nlpvw path:first-child{stroke:rgba(255,255,255,.85);stroke-width:2}html.ui-nl .nlpvw path:last-child{stroke:rgba(255,255,255,.6);stroke-width:1.5}
html.ui-nl .nlpvh{position:absolute;right:18px;bottom:22px;width:150px;height:50px;stroke:var(--accent);opacity:.55;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
html.ui-nl .nlpvtag{position:absolute;left:20px;top:20px;max-width:calc(100% - 40px);padding:9px 14px 10px;border-radius:14px;background:var(--nl-deep);color:var(--nl-on-deep);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),4px 12px 22px -12px rgba(11,79,179,.75)}
html.ui-nl .nlpvtag > div:first-child{font-size:13.5px;font-weight:600;opacity:.88;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.ui-nl .nlpvtp{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.01em;margin-top:1px} /* design-ok: NL3.1 · the preview tag (canvas JONewOrderLive) */
html.ui-nl .nlpvsd{position:absolute;left:20px;bottom:-22px;width:52px;height:52px;border-radius:16px;background:var(--surface);display:grid;place-items:center;box-shadow:0 1px 2px rgba(14,21,34,.06),4px 10px 18px -10px rgba(20,40,80,.5)}
html.ui-nl .nlpvsd img{max-width:34px;height:auto}
html.ui-nl .nlpvbody{padding:34px 22px 22px;position:relative}
html.ui-nl .nlpvk{font-size:14px;font-weight:600;color:var(--nl-label)}
html.ui-nl .nlpvt{font-weight:600;font-size:20px;margin-top:4px;overflow-wrap:anywhere}
html.ui-nl .nlpvs{font-size:15px;color:var(--nl-label);margin-top:2px}
html.ui-nl .nlpvl{display:flex;flex-wrap:wrap;gap:4px 14px;margin-top:12px;font-size:14.5px;color:var(--muted)}
html.ui-nl .nlpvf{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}
html.ui-nl .nlpvpay{font-family:var(--display);font-weight:400;font-size:26px;color:var(--accent)} /* design-ok: NL3.1 · the preview's pay (canvas JONewOrderLive) */
html.ui-nl .nlpvpay small{font-family:var(--font);font-size:15px;font-weight:500}
html.ui-nl .nlpvqa{min-height:40px;pointer-events:none}
html.ui-nl .nlpv .ph{color:var(--nl-hint)}
html.ui-nl .nlpv .fl{animation:nl31fl 1.1s ease-out;border-radius:8px}
@keyframes nl31fl{0%{background:var(--nl-glow-chg)}100%{background:transparent}}
html.ui-nl .nlready{display:flex;align-items:center;gap:12px;margin:20px 4px 0}
html.ui-nl .nlrg{--nlp:25;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;flex:none;background:conic-gradient(var(--nl-deep-ink) calc(var(--nlp)*1%),var(--nl-line-2) 0);transition:--nlp .7s cubic-bezier(.2,.8,.2,1)}
html.ui-nl .nlrg > span{width:38px;height:38px;border-radius:50%;background:var(--bg);display:grid;place-items:center;font-family:var(--display);font-weight:600;font-size:13px}
html.ui-nl .nlrg.p1{--nlp:25}html.ui-nl .nlrg.p2{--nlp:50}html.ui-nl .nlrg.p3{--nlp:75}
html.ui-nl .nlrg.p4{--nlp:100;background:conic-gradient(var(--nl-ring-ok) calc(var(--nlp)*1%),var(--nl-line-2) 0)}
html.ui-nl .nlready b{font-size:16px}html.ui-nl .nlrsub{font-size:14px;color:var(--nl-label)}
html.ui-nl .nlcks{margin:10px 4px 0}
html.ui-nl .nlck{display:flex;align-items:center;gap:10px;font-size:15px;padding:7px 0;color:var(--nl-warn);transition:color .3s}
html.ui-nl .nlck i{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;flex:none;background:var(--nl-t-todo);color:var(--nl-warn);transition:background .3s,color .3s}
html.ui-nl .nlck i .d{width:6px;height:6px;border-radius:50%;background:currentColor}
html.ui-nl .nlck i .c{display:none}
html.ui-nl .nlck.done{color:var(--ink)}
html.ui-nl .nlck.done i{background:var(--nl-t-ok);color:var(--nl-t-ok-ink)}
html.ui-nl .nlck.done i .d{display:none}
html.ui-nl .nlck.done i .c{display:block;animation:nl31pop .38s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl .nlpvnote{font-size:14px;color:var(--nl-label);margin:12px 4px 0}
/* hover and press: tiles, chips, the calendar's days and buttons lift; buttons press to .98 */
html.ui-nl .nlofw .btn:active,html.ui-nl .nlofw button:active{transform:scale(.98)}
@media(max-width:1180px){
  html.ui-nl .nlofg{grid-template-columns:minmax(0,1fr)}
  html.ui-nl .nlpv{position:static;margin-top:28px;max-width:420px}
  html.ui-nl .nlsteps{max-width:none}
}
@media(max-width:820px){
  html.ui-nl .nlos{grid-template-columns:minmax(0,1fr);row-gap:16px;padding:22px 0}
  html.ui-nl .nlosb,html.ui-nl .nlwhere{grid-template-columns:minmax(0,1fr)}
  html.ui-nl .nlosb > :is(.c1,.c2),html.ui-nl .nlosb .pair > *{grid-column:1/-1}
  html.ui-nl .nlkinds{grid-template-columns:minmax(0,1fr)}
  html.ui-nl .nlwhere .oaddr,html.ui-nl .nlwhere .oaddr[hidden],html.ui-nl .nlmap{grid-column:1/-1;grid-row:auto}
  html.ui-nl .nlmap{min-height:180px;margin-top:0}
  html.ui-nl .nllen{margin-top:0!important}
  html.ui-nl .nlsteps{gap:8px;overflow-x:auto;scrollbar-width:none;margin-right:-18px;padding-right:18px}
  html.ui-nl .nlsteps::-webkit-scrollbar{display:none}
  html.ui-nl .nlofw > h2{font-size:28px}
  html.ui-nl .nlpv{max-width:none}
}

/* ================= THE DATE AND TIME CONTROL (core/dtpick.php) ================= */
html.ui-nl .nlwf{position:relative;display:flex;flex-direction:column;gap:6px;min-width:0}
html.ui-nl .nlwf .nlwl{display:flex;flex-direction:row;align-items:center;gap:6px;margin:0;font-size:14.5px;font-weight:600;color:var(--nl-label);white-space:nowrap;transition:color .2s}
html.ui-nl .nlwf:focus-within .nlwl{color:var(--nl-label-f)}
html.ui-nl .nlok{display:none;width:18px;height:18px;border-radius:50%;background:var(--nl-t-ok);color:var(--nl-t-ok-ink);place-items:center;flex:none}
html.ui-nl .nlwf:has(input:not(:placeholder-shown)) .nlok,html.ui-nl .nlwf.done .nlok{display:grid;animation:nl31pop .38s cubic-bezier(.2,.9,.3,1.3)}
html.ui-nl .nlwf.bad .nlok{display:none}
html.ui-nl .nlw{--nlwb:var(--nl-well);display:flex;align-items:center;gap:10px;min-height:50px;padding:0 10px 0 16px;border-radius:14px;background:var(--nlwb);box-shadow:var(--nl-well-sh);min-width:0;transition:background .25s,box-shadow .25s,transform .25s}
html.ui-nl .nlw:hover{--nlwb:var(--nl-well-f)}
html.ui-nl .nlwf:focus-within .nlw{--nlwb:var(--nl-well-f);transform:translateY(-1px);box-shadow:var(--nl-well-sh-f)}
html.ui-nl .nlwf.nlneed .nlw{animation:nl31need 1.4s ease-out}
html.ui-nl .nlw input{flex:1;min-width:0;border:0!important;background:transparent!important;box-shadow:none!important;padding:0!important;margin:0!important;min-height:0!important;font:inherit;font-size:17px;color:var(--ink);outline:0;caret-color:var(--nl-deep-ink);font-variant-numeric:tabular-nums}
html.ui-nl .nlw input::placeholder{color:var(--nl-hint)}
html.ui-nl .dtpcal{width:30px;height:30px;border-radius:50%;border:0!important;box-shadow:none!important;display:grid;place-items:center;background:var(--nl-btn);color:var(--nl-on-btn);cursor:pointer;flex:none;padding:0;min-height:0!important;transition:background .2s,transform .2s}
html.ui-nl .dtpcal:hover{background:var(--nl-btn-h);transform:scale(1.08)}
html.ui-nl .dtpap{display:flex;padding:3px;border-radius:999px;background:var(--soft);flex:none}
html.ui-nl .dtpapo{position:relative;display:block;cursor:pointer;margin:0!important}
html.ui-nl .dtpapo input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
html.ui-nl .dtpapo span{display:grid;place-items:center;height:30px;min-width:40px;padding:0 8px;border-radius:999px;font-size:13px;font-weight:600;color:var(--nl-label);transition:background .2s,color .2s,box-shadow .2s}
html.ui-nl .dtpapo:hover span{color:var(--nl-on-btn)}
html.ui-nl .dtpapo input:checked + span{background:var(--nl-deep);color:var(--nl-on-deep);box-shadow:1px 4px 10px -4px rgba(11,79,179,.6)}
html.ui-nl .dtpapo input:focus-visible + span{box-shadow:0 0 0 3px var(--nl-deep-soft-h)}
html.ui-nl .dtppop{padding:16px;border-radius:18px;background:var(--nl-solid);width:344px;max-width:calc(100vw - 32px)}
html.ui-nl .dtppop.pop{position:absolute;left:0;top:calc(100% + 10px);z-index:40;box-shadow:var(--nl-pop-sh);animation:nl31in .22s cubic-bezier(.2,.8,.2,1)}
html.ui-nl .dtppop.pop.right{left:auto;right:0}
html.ui-nl .dtpsheet .dtppop{width:auto;max-width:none;padding:4px 0 8px}
html.ui-nl .dtph{display:flex;align-items:center;justify-content:space-between}
html.ui-nl .dtph b{font-family:var(--display);font-weight:600;font-size:16px}
html.ui-nl .dtpnav{width:34px;height:34px;border-radius:50%;border:0!important;box-shadow:none!important;display:grid;place-items:center;background:var(--nl-btn);color:var(--nl-on-btn);cursor:pointer;padding:0;min-height:0!important}
html.ui-nl .dtpnav:hover{background:var(--nl-btn-h)}
/* tap sizes (44px on a phone, alignscan): the date and time text fill their well; the calendar button, Copy and "+ Add" widen
   their hit area with an ::after, as the ? tips do */
html.ui-nl .nlw.dtpw > input{align-self:stretch;min-height:44px}
html.ui-nl .dtpcal,html.ui-nl .rpcp,html.ui-nl a.rpadd{position:relative}
html.ui-nl .dtpcal::after,html.ui-nl .rpcp::after{content:"";position:absolute;inset:-7px}
html.ui-nl a.rpadd::after{content:"";position:absolute;inset:-5px -2px}
html.ui-nl .dtpq{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
html.ui-nl .dtpq button{min-height:32px;padding:0 12px;border:0;border-radius:999px;font:inherit;font-size:13.5px;font-weight:600;color:var(--nl-on-btn2);background:var(--nl-btn2);box-shadow:inset 0 0 0 1px var(--nl-line-2);cursor:pointer;transition:transform .15s}
html.ui-nl .dtpq button:hover{transform:translateY(-1px)}
@media(max-width:760px){ html.ui-nl .dtpq button{min-height:44px;padding:0 14px} }
html.ui-nl .dtpwk,html.ui-nl .dtpmg{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
html.ui-nl .dtpwk{margin-top:12px;font-size:12.5px;font-weight:600;color:var(--nl-label);text-align:center}
html.ui-nl .dtpmg{margin-top:6px}
html.ui-nl .dtpd{height:40px;min-height:0!important;border:0!important;box-shadow:none;border-radius:10px;background:transparent;font:inherit;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer;padding:0;transition:background .15s,transform .15s}
html.ui-nl .dtpd:hover:not(:disabled){background:var(--accent-soft);transform:translateY(-1px)}
html.ui-nl .dtpd.today{color:var(--nl-on-btn);font-weight:700}
html.ui-nl .dtpd.mid{background:var(--nl-deep-soft)}
html.ui-nl .dtpd.on{background:var(--nl-deep);color:var(--nl-on-deep);font-weight:700;box-shadow:1px 4px 10px -4px rgba(11,79,179,.6)}
html.ui-nl .dtpd:disabled{color:var(--nl-hint);opacity:.5;cursor:default}
html.ui-nl .dtpd.blank{visibility:hidden}
html.ui-nl .dtpft{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:10px;font-size:13.5px;color:var(--nl-label)}
@media(max-width:640px){ html.ui-nl .dtpd{height:46px;font-size:16px} html.ui-nl .dtpcal{width:36px;height:36px} html.ui-nl .dtpapo span{height:36px;min-width:44px} }
@media(prefers-reduced-motion:reduce){
  html.ui-nl :is(.rphead,.rpflow,.rprail,.rpchips,.nlofw,.nlpv,.nlpk,.dtppop,.jwrap) *,html.ui-nl :is(.rpbar,.nlpk,.dtppop,.rpsec){animation:none!important;transition:none!important}
}/* PH1 · the top bar's Phone button and the call pop docked IN the bar (DESIGN-RULES rule 2: never a card over the page) */
.phbtn{flex:none;display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--soft);color:var(--ink);font-weight:600;font-size:var(--fs-sm);text-decoration:none;position:relative;white-space:nowrap}
.phbtn .ic{width:18px;height:18px}
.phbtn:hover{background:var(--accent-soft);color:var(--on-accent-soft)}
.phbtn .phlive{width:8px;height:8px;border-radius:4px;background:var(--muted);opacity:.45}
.phbtn.live .phlive{background:var(--ok);opacity:1}
.phpop{flex:0 1 auto;display:inline-flex;align-items:center;gap:6px;min-height:40px;max-width:min(640px,48vw);min-width:0;padding:0 5px 0 14px;border-radius:999px;background:var(--ok-bg);color:var(--ok);font-size:var(--fs-sm);white-space:nowrap;overflow:hidden;margin-left:10px}
.phpop[hidden]{display:none!important}
/* the name is the last thing cut (the walk: "Jane Doe (PH..." while "is calling" fitted): the role goes first */
.phpop b{flex:0 0 auto;max-width:24ch;font-weight:700;overflow:hidden;text-overflow:ellipsis}
.phpop .phpopv{flex:none}
.phpop .phpops{flex:1 1 0;min-width:0;color:inherit;opacity:.8;overflow:hidden;text-overflow:ellipsis}
.phpop a{flex:none;display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:var(--surface);color:var(--accent);font-weight:600;text-decoration:none}
.phpop .ic{width:16px;height:16px;flex:none}
@media (max-width:820px){.phbtn,.phpop{display:none!important}}
/* Calls and Settings > Calling: ONE surface each (rule 1), regions divided by 1px lines of the ink (--phline: Classic's --line is
   transparent, WE4's lesson), dividers drawn as gradients (r57 forbids side borders) */
.phone1{border-radius:24px;padding:0;--phline:color-mix(in srgb,var(--ink) 14%,transparent)}
.phsec{padding:18px 22px;position:relative}
.phsec+.phsec::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--phline),var(--phline))}
.phsec h2{font-size:var(--fs-lg);font-weight:600;margin:0 0 6px}
.phsec .phsub{margin:0 0 12px;color:var(--muted);font-size:var(--fs-sm)}
.phfold>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-height:44px}
.phfold>summary::-webkit-details-marker{display:none}
.phfold>summary h2{margin:0}
.phfold>summary .small{color:var(--accent);font-weight:600}
.phfold[open]>summary .small{display:none}
.phfold>.phsteps{margin-top:10px}
.phsteps{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:14px;counter-reset:phs}
.phsteps>li{display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:start;counter-increment:phs}
.phsteps>li::before{content:counter(phs);width:26px;height:26px;border-radius:13px;background:var(--accent-soft);color:var(--on-accent-soft);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.phsteps>li.done::before{content:'✓';background:var(--ok-bg);color:var(--ok)}
.phcopy{display:flex;gap:8px;align-items:center;margin:8px 0;max-width:100%}
.phcopy input{flex:1;min-width:0;min-height:44px;border:0;border-radius:12px;background:var(--soft);padding:0 12px;font:13px/1.3 var(--mono,ui-monospace,monospace);color:var(--ink)}
.phscopes{margin:6px 0 8px}
.phform{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:8px}
.phform .gfld{flex:1 1 220px}
.phform .btn{min-height:44px}
/* the switch: the box itself is hidden and the track drawn beside it (the walk: Classic's own checkbox showed through a drawn one) */
.phsw{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:600;position:relative}
.phsw input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}   /* beats core/ui.php's html input[type=checkbox] (0,1,2) */
.phsw i{flex:none;width:46px;height:28px;border-radius:14px;background:var(--soft);position:relative;box-shadow:inset 0 0 0 1px var(--phline,rgba(0,0,0,.12))}
.phsw i::after{content:'';position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:11px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
.phsw input:checked+i{background:var(--accent)}
.phsw input:checked+i::after{left:21px}
.phsw input:focus-visible+i{outline:2px solid var(--navy);outline-offset:2px}
.phsyncf{display:block}
.phsyncf .btn{margin-top:4px}
.phwho .phwr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:10px 0;min-height:44px}
.phwho .phwn{flex:1 1 220px}
.phwho .phwl{color:var(--muted);font-size:var(--fs-sm)}
.phwhoe>summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:44px;display:inline-flex;align-items:center;list-style:none}
.phwhoe>summary::-webkit-details-marker{display:none}
.phwhoe[open]{flex:1 1 100%}
.phstate{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.phstate b{font-size:var(--fs-lg)}
.phpicks{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px;border:0;padding:0}
.phpicks legend{font-weight:600;margin-bottom:6px;padding:0}
.phpk{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--soft);font-weight:600;font-size:var(--fs-sm);cursor:pointer}
.phpk input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.phpk:has(input:checked){background:var(--accent-soft);color:var(--on-accent-soft);box-shadow:inset 0 0 0 1px var(--accent)}
.phpk:has(input:focus-visible){outline:2px solid var(--navy);outline-offset:2px}
.phwho{margin:0;padding:0;list-style:none}
.phwho li{position:relative}
.phwho li+li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--phline),var(--phline))}
.phwho form{display:grid;grid-template-columns:minmax(130px,1fr) minmax(90px,.6fr) auto;gap:10px;align-items:end;padding:0 0 12px}
.phwho .phwn{display:flex;flex-direction:column;justify-content:center}
.phwho input{min-height:44px}
@media (max-width:700px){.phwho form{grid-template-columns:1fr 1fr}.phwho form .btn{grid-column:1/-1}}
/* Calls: a list with its detail (two panes from 900px of the surface; under it the list, then the call as a page with Back) */
.phcw{container-type:inline-size;container-name:phc}
.phcalls{display:grid;grid-template-columns:minmax(0,1fr)}
.phcalls.hasid>.phlist{display:none}
.phcalls:not(.hasid)>.phdet{display:none}
@container phc (min-width:900px){
  .phcalls{grid-template-columns:minmax(0,1fr) minmax(0,1.05fr)}
  .phcalls>.phlist,.phcalls>.phdet{display:block!important}
  .phcalls>.phdet{position:relative}
  .phcalls>.phdet::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:1px;background:linear-gradient(var(--phline),var(--phline))}
  .phdet .phback{display:none}
}
.phbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:14px 18px;position:relative}
.phbar::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(var(--phline),var(--phline))}
.phpill{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:999px;background:var(--soft);color:var(--ink);font-size:var(--fs-sm);font-weight:500;text-decoration:none;white-space:nowrap}
.phpill.on{background:var(--accent-soft);color:var(--on-accent-soft);font-weight:600}
.phwhof{display:flex;gap:8px;align-items:center;margin-left:auto}
.phwhof select{min-height:40px;border:0;border-radius:12px;background:var(--soft);padding:0 10px;font:inherit}
.phday{font-family:var(--mono,ui-monospace,monospace);font-size:var(--fs-2xs,11px);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:14px 18px 6px}
.phrows{list-style:none;margin:0;padding:0}
.phrow{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:10px;align-items:center;padding:12px 18px;margin-block:0;color:var(--ink);text-decoration:none;position:relative;min-height:56px}
.phrow:hover,.phrow:focus{text-decoration:none}
.phrows li+li .phrow::before{content:'';position:absolute;left:18px;right:0;top:0;height:1px;background:linear-gradient(var(--phline),var(--phline))}
.phrow:hover{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
.phrow.on{background:var(--accent-soft)}
.phrow .ic{width:18px;height:18px;color:var(--muted)}
.phrow .ic.miss{color:var(--bad)}
.phrn{min-width:0}
.phrn b{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phrn small{display:block;color:var(--muted);font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phtag{font-size:12px;font-weight:600;border-radius:10px;padding:2px 9px;background:var(--soft);color:var(--muted);white-space:nowrap}
.phtag.need{background:var(--warn-bg);color:var(--warn)}
.phtag.miss{background:var(--bad-bg);color:var(--bad)}
.phtag.ok{background:var(--ok-bg);color:var(--ok)}
.phtag.live{background:var(--accent-soft);color:var(--on-accent-soft)}
.phempty{padding:28px 18px;color:var(--muted)}
.phdet{padding:18px 24px 22px}
.phback{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 14px 0 10px;border-radius:22px;background:var(--soft);color:var(--ink);font-weight:600;text-decoration:none;margin-bottom:12px}
.phback .ic{width:18px;height:18px}
.phdet h2{font-size:22px;font-weight:600;margin:0 0 2px;overflow-wrap:anywhere}
.phdet .phdsub{color:var(--muted);margin:0 0 14px}
.phdet .phdsub a{font-weight:600}
.phok{display:block;background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-weight:600}
.phhow{margin:0 0 16px}
.phhow textarea{width:100%;min-height:84px;border:0;border-radius:14px;background:var(--soft);padding:12px 14px;font:inherit;color:var(--ink)}
.phhow .gfld{margin-bottom:10px}
.phsave{display:flex;gap:10px;align-items:center}
.phsave .btn{min-height:44px}
.phfacts{margin:6px 0 0;padding:0;list-style:none}
.phfacts li{display:grid;grid-template-columns:120px minmax(0,1fr);gap:10px;padding:10px 0;position:relative;font-size:var(--fs-sm)}
.phfacts li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--phline),var(--phline))}
.phfacts li>span:first-child{color:var(--muted)}
.phrec{margin:14px 0}
.phrec audio{width:100%;max-width:520px}
.phacts{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.phacts .btn{min-height:44px;display:inline-flex;align-items:center;gap:6px}
.phacts .ic{width:18px;height:18px}
.phnoted{background:var(--soft);border-radius:14px;padding:12px 14px;margin:0 0 14px}
.phnoted summary{cursor:pointer;color:var(--ink);min-height:44px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;list-style:none}
.phnoted summary::-webkit-details-marker{display:none}
.phnoted summary b{color:var(--accent);font-weight:600}
.phacts1{margin:0 0 14px}
.phmovef small{display:block;color:var(--muted);margin:-2px 0 4px}
.phmovef select{width:100%}
.phwhof label{font-size:var(--fs-sm);color:var(--muted);font-weight:600}
@media (max-width:820px){
  .phdet .phsave{position:sticky;bottom:calc(var(--tabh,74px) + 12px + env(safe-area-inset-bottom,0px));z-index:2;background:var(--surface);padding:8px 0;border-radius:14px}
  .phdet .phsave .btn{flex:1}
  .phdet .phsave{padding-right:72px}   /* the walk: the shell's round chat button (56px, 18px from the edge, the same height) covered Save's right end */
  .phwhof{margin-left:0;width:100%}
  .phwhof select{flex:1}
  .phrn small{white-space:normal}
}/* RW1 · the clock in the top bar (from 821px): a pill docked IN the bar (rule 2), its drop-down under it (C12) */
.rwclk{flex:none;display:inline-flex;margin:0}
.rwpill{flex:none;display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;background:var(--soft);color:var(--ink);font:inherit;font-weight:600;font-size:var(--fs-sm);border:0;cursor:pointer;text-decoration:none;white-space:nowrap;list-style:none}
.rwpill::-webkit-details-marker{display:none}
.rwpill i{width:8px;height:8px;border-radius:4px;background:var(--muted);flex:none}
.rwpill.in{background:var(--ok-bg);color:var(--ok)}.rwpill.in i{background:var(--ok)}
.rwpill.br{background:var(--warn-bg);color:var(--warn)}.rwpill.br i{background:var(--warn)}
.rwpill b{font-variant-numeric:tabular-nums;font-weight:700}
.rwpill:hover{filter:brightness(.97)}
.rwdd{position:relative;flex:none}
.rwdd>.rwddp{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-width:calc(100vw - 32px);background:var(--surface);border-radius:16px;box-shadow:0 12px 40px rgba(20,40,80,.22);padding:8px;z-index:var(--z-drawer,60)}
.rwddh{padding:8px 10px 8px;font-size:var(--fs-sm);color:var(--muted)}
.rwddh b{display:block;color:var(--ink);font-size:15px;margin-bottom:2px}
.rwddp form{margin:0}
.rwddp .rwddr{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0 12px;border:0;border-radius:12px;background:none;color:var(--ink);font:inherit;font-size:15px;text-align:left;text-decoration:none;cursor:pointer}
.rwddp .rwddr:hover,.rwddp .rwddr:focus-visible{background:var(--soft)}
.rwddp .rwddr .ic{width:18px;height:18px;flex:none}
.rwddsep{height:1px;margin:6px 4px;background:linear-gradient(color-mix(in srgb,var(--ink) 12%,transparent),color-mix(in srgb,var(--ink) 12%,transparent))}
@media (max-width:820px){.rwclk,.rwdd{display:none!important}}
/* the band on a phone: in the flow at the top of the page, the same buttons in the same order */
.rwband{display:none}
@media (max-width:820px){
  /* in the flow under the top bar, unfilled (a line under it, the state in its colour): the shell's clock, not a second surface on a
     work page (DESIGN-RULES rule 1; GATE 14 counts a filled box) */
  .rwband{display:flex;align-items:center;gap:6px;flex-wrap:wrap;background:none;color:var(--ink);border-radius:0;padding:0 0 10px;margin:0 0 14px;font-weight:600;font-size:15px;border-bottom:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
  .rwband.in{color:var(--ok)}
  .rwband.br{color:var(--warn)}
  .rwband .rwbt{flex:1 1 auto;display:inline-flex;align-items:center;gap:8px;min-width:0;white-space:nowrap}
  .rwband .rwbt i{width:8px;height:8px;border-radius:4px;background:currentColor;flex:none}
  .rwband .rwbt b{font-variant-numeric:tabular-nums}
  .rwband .rwbb{display:flex;gap:6px;margin-left:auto}
  .rwband form{margin:0}
  .rwband .btn{min-height:44px;border-radius:22px;padding:0 12px}
  .rwband .rwbb .btn.btn{font-size:15px;padding:0 12px}   /* beats Classic's phone .btn (17px): the state and both buttons on one line at 390 */
  .rwband .btn.ghost{background:var(--soft);color:var(--ink)}
  html:has(.rw1one){scroll-padding-bottom:calc(var(--tabh,74px) + var(--sab,0px) + 24px)}   /* a main button scrolled to clears the tab bar (TK1's and CX2's lesson) */
}
.rwflash{display:block;border-radius:12px;padding:10px 14px;margin:0 0 12px;font-weight:600;background:var(--ok-bg);color:var(--ok)}
.rwflash.bad{background:var(--bad-bg);color:var(--bad)}
/* RW1 · the pages: ONE surface per job, the lines drawn in the ink */
.rw1w{container-type:inline-size;container-name:rw1}
.rw1one{background:var(--surface);border-radius:24px;padding:0;overflow:clip;--rwline:color-mix(in srgb,var(--ink) 14%,transparent);box-shadow:0 1px 3px rgba(20,40,80,.08),0 8px 24px rgba(20,40,80,.06);margin:0 0 18px}
.rw1one [hidden]{display:none!important}
.rw1one .sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;margin:0;padding:0}
.rwsec{padding:16px 22px;position:relative;min-width:0}
.rwsec+.rwsec::before,.rwline::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwline{position:relative}
.rwsec h2{font-size:var(--fs-lg);font-weight:600;margin:0 0 6px}
.rwsec h3{font-size:16px;font-weight:600;margin:0 0 8px}
.rwhd{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px;padding:14px 22px}
.rwhd h2{margin:0;font-size:var(--fs-lg);font-weight:600}
.rwhd .rwsub{color:var(--muted);font-size:var(--fs-sm)}
.rwsub{color:var(--muted);font-size:var(--fs-sm);margin:0 0 10px}
.rwnums{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(150px,100%),1fr));gap:14px;margin:0 0 18px}
.rwnum{background:var(--surface);border-radius:20px;box-shadow:0 1px 3px rgba(20,40,80,.08),0 8px 24px rgba(20,40,80,.06);padding:16px 20px;min-width:0}
.rwnum b{display:block;font-family:var(--display);font-weight:300;font-size:34px;line-height:1.1;font-variant-numeric:tabular-nums;white-space:nowrap}
.rwnum span{color:var(--muted);font-size:var(--fs-sm)}
.rwnum b small{font-size:.5em;font-family:var(--font);font-weight:500;color:var(--muted)}
/* a phone: two tiles a row, the figures smaller (after the rules above, or they win: the walk's "23 h / 41 min") */
@media (max-width:600px){.rwnums{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rwnum{padding:12px 14px}.rwnum b{font-size:26px}}
.rwnum.hi b{color:var(--bad)}
.rwrows{list-style:none;margin:0;padding:0}
.rwrows>li{position:relative;margin:0}
.rwrows>li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwrow{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 16px;align-items:center;padding:12px 22px;color:var(--ink);text-decoration:none;min-height:56px;margin-block:0!important}
.rwrow:hover,.rwrow:focus-visible{text-decoration:none;background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
.rwrow.on{background:var(--accent-soft)}
.rwrow b{font-weight:600;font-size:16px;overflow-wrap:anywhere}
.rwrow small{display:block;color:var(--muted);font-size:var(--fs-sm)}
.rwnow{display:inline-flex;align-items:center;gap:8px}
.rwdot{width:8px;height:8px;border-radius:4px;background:var(--muted);flex:none;display:inline-block}
.rwdot.in{background:var(--ok)}.rwdot.br{background:var(--warn)}.rwdot.paused{background:var(--bad)}
/* a bar is a <progress> (its value an attribute, no inline style: GATE 9's ratchet) */
.rwbar{display:block;width:100%;height:6px;border:0;border-radius:3px;background:var(--soft);overflow:hidden;margin-top:5px;-webkit-appearance:none;appearance:none;color:var(--accent)}
.rwbar::-webkit-progress-bar{background:var(--soft);border-radius:3px}
.rwbar::-webkit-progress-value{background:var(--accent);border-radius:3px}
.rwbar::-moz-progress-bar{background:var(--accent);border-radius:3px}
.rwtag{justify-self:start;display:inline-flex;align-items:center;font-size:12px;font-weight:600;border-radius:10px;padding:2px 9px;background:var(--soft);color:var(--muted);white-space:nowrap}
.rwtag.high{background:var(--bad-bg);color:var(--bad)}.rwtag.medium{background:var(--warn-bg);color:var(--warn)}.rwtag.low{background:var(--info-bg,var(--accent-soft));color:var(--info,var(--accent))}.rwtag.done{background:var(--ok-bg);color:var(--ok)}
/* People: one line under the name on a narrow surface (the board's phone row), the five columns from 900px of it */
.rwppl .rwrow>.rwc{display:none}
.rwone{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;color:var(--ink);font-size:var(--fs-sm)}
.rwone .rwtag{margin-left:auto}
@container rw1 (min-width:900px){
  .rwppl .rwrow{grid-template-columns:minmax(0,2.1fr) minmax(0,2fr) minmax(0,1.1fr) minmax(0,1.3fr) 96px}
  .rwppl .rwrow>.rwc{display:block}
  .rwppl .rwone{display:none}
}
.rwfl .rwrow{grid-template-columns:70px minmax(0,1fr) auto}
@container rw1 (max-width:560px){.rwfl .rwrow .btn{display:none}}
.rwflist .rwrow{grid-template-columns:70px minmax(0,1fr)}
/* the reports list has no tag column: one column, no line above the first row (it sits on the surface's top edge) */
.rwflist.rwrep .rwrow{grid-template-columns:minmax(0,1fr)}
.rwflist.rwrep .rwrows>li:first-child::before{display:none}
.rwfdet .rwh3s{margin:20px 0 6px}
.rwfdet .rwrows{margin:0 -22px}
.rwrow .rwnums2{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:var(--fs-sm)}
.rwempty{padding:22px;color:var(--muted)}
.rwempty b{color:var(--ink)}
.rwempty .btn{margin-top:10px;min-height:44px}
/* the person page */
.rwnowl{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:14px 22px}
.rwnowl .rwdsw{margin-left:auto;display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted);font-size:var(--fs-sm)}
.rwnowl .rwdsw a.btn{min-height:40px}
.rwcols{display:grid;grid-template-columns:minmax(0,1fr)}
@container rw1 (min-width:900px){.rwcols{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr)}.rwcols>.rwsec+.rwsec::before{left:0;right:auto;top:16px;bottom:16px;width:1px;height:auto}}
.rwtl{display:block;width:100%;height:34px;border-radius:8px;background:var(--soft);margin:6px 0 4px;overflow:hidden}
.rwtl .s{fill:color-mix(in srgb,var(--accent) 12%,transparent)}
.rwtl .w{fill:var(--accent)}.rwtl .b{fill:var(--warn)}.rwtl .i{fill:url(#rwhatch)}.rwtl .hp{fill:color-mix(in srgb,var(--ink) 25%,transparent)}
.rwtl .n{fill:var(--ink)}
.rwtlx{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.rwev{list-style:none;margin:10px 0 0;padding:0}
/* one fixed first column so every line's "what" starts on the same edge; Change sits on the line's own baseline */
.rwev>li{display:grid;grid-template-columns:152px minmax(0,1fr) auto;gap:4px 12px;padding:6px 0;font-size:15px;align-items:baseline}
.rwev>li>span:first-child{color:var(--muted);white-space:nowrap}
@container rw1 (max-width:560px){.rwev>li{grid-template-columns:96px minmax(0,1fr) auto}.rwev>li>span:first-child{white-space:normal}}
.rwev .rwsrc{display:block;color:var(--muted);font-size:13px}
.rwev>li>details{margin:0;justify-self:end}
.rwev>li>details[open]{grid-column:1/-1;justify-self:stretch}
.rwev details>summary,.rwadd>summary{display:inline-flex;align-items:center;min-height:44px;color:var(--accent);font-weight:600;cursor:pointer;list-style:none}
@media (min-width:821px){.rwev details>summary,.rwadd>summary{min-height:32px}}
.rwev details>summary::-webkit-details-marker,.rwadd>summary::-webkit-details-marker{display:none}
.rwedit{background:var(--soft);border-radius:16px;padding:12px 14px;margin:4px 0 8px}
.rwedit .rwfrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr));gap:10px 12px;align-items:end}
.rwtot{color:var(--muted);font-size:var(--fs-sm);margin:10px 0 0}
.rwtot b{color:var(--ink)}
.rwbig{font-family:var(--display);font-weight:300;font-size:34px;line-height:1;margin:0 0 8px}
.rwbig small{font-family:var(--font);font-size:var(--fs-sm);color:var(--muted)}
.rwmet{padding:7px 0}
.rwmet .l{display:flex;justify-content:space-between;gap:10px;font-size:15px}
.rwmet .l b{font-variant-numeric:tabular-nums;white-space:nowrap}
.rwhint{color:var(--muted);font-size:var(--fs-sm);margin:8px 0 0}
/* the flags: the list and the open one (two panes from 820px of the surface; on a phone the flag is a page with Back) */
.rwflags{display:grid;grid-template-columns:minmax(0,1fr)}
.rwflags.hasf>.rwflist{display:none}
.rwrepg:not(.hasf) .rwrow.on{background:none}   /* a phone, nothing chosen yet: no row looks chosen (the walk) */
.rwflags:not(.hasf)>.rwfdet{display:none}
@container rw1 (min-width:820px){
  .rwflags{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr)}
  .rwflags.rwrepg{grid-template-columns:minmax(240px,300px) minmax(0,1fr)}
  .rwflags>.rwflist,.rwflags>.rwfdet{display:block!important}
  .rwrepg:not(.hasf) .rwrow.on{background:var(--accent-soft)}
  .rwflags>.rwfdet{position:relative}
  .rwflags>.rwfdet::before{content:'';position:absolute;left:0;top:14px;bottom:14px;width:1px;background:linear-gradient(var(--rwline),var(--rwline))}
  .rwfdet .rwback{display:none!important}
}
.rwfdet{padding:16px 22px;min-width:0;scroll-margin-top:96px}
.rwfdet h3{font-size:19px;margin:0 0 4px;overflow-wrap:anywhere}
.rwback{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 16px 0 12px;border-radius:22px;background:var(--soft);color:var(--ink);font-weight:600;text-decoration:none;margin:0 0 12px}
.rwwhy{background:var(--soft);border-radius:12px;padding:10px 14px;margin:10px 0 12px;font-size:15px}
.rwevd{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 14px}
.rwevd td{padding:7px 8px 7px 0;vertical-align:top;position:relative}
.rwevd tr+tr td::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwevd td:first-child{color:var(--muted);width:34%;white-space:nowrap}
.rwevd a{font-weight:600}
.rwfs{border:0;margin:0 0 10px;padding:0;min-width:0}
.rwfs legend{font-weight:600;margin:0 0 6px;padding:0}
.rwpicks{display:flex;flex-wrap:wrap;gap:8px}
.rwpk{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:var(--soft);font-weight:600;font-size:var(--fs-sm);cursor:pointer}
.rwpk input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}
.rwpk:has(input:checked){background:var(--accent-soft);color:var(--on-accent-soft,var(--accent));box-shadow:inset 0 0 0 1px var(--accent)}
.rwpk:has(input:focus-visible){outline:2px solid var(--navy,var(--accent));outline-offset:2px}
.rwfld{display:block;margin:0 0 12px;min-width:0}
.rwfld>span{display:block;font-weight:600;font-size:14px;margin:0 0 6px}
.rwfld input[type=text],.rwfld select,.rwfld textarea{width:100%;min-height:44px;border:0;border-radius:14px;background:var(--soft);padding:10px 14px;font:inherit;color:var(--ink);box-sizing:border-box}
.rwfld textarea{min-height:80px;resize:vertical}
.rwfld small{display:block;color:var(--muted);font-size:var(--fs-sm);margin-top:4px}
.rwerr{display:block;background:var(--bad-bg);color:var(--bad);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-weight:600}
.rwok{display:block;background:var(--ok-bg);color:var(--ok);border-radius:12px;padding:10px 14px;margin:0 0 12px;font-weight:600}
/* a request, not an error: the notice to read (warn tone) */
.rwask{display:block;background:var(--warn-bg);color:var(--warn);border-radius:12px;padding:10px 14px;margin:0;font-weight:600}
.rwask a{font-weight:600}
.rwname{max-width:440px}
.rwact{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.rwact .btn{min-height:44px}
.rwdec{background:var(--soft);border-radius:12px;padding:10px 14px;margin:0 0 12px}
/* tables that read (the week) */
.rwwk{width:100%;border-collapse:collapse;font-size:15px}
.rwwk th{font-size:13px;color:var(--muted);font-weight:600;text-align:right;padding:8px 10px;white-space:nowrap}
.rwwk th:first-child,.rwwk td:first-child{text-align:left}
.rwwk td{padding:10px;text-align:right;font-variant-numeric:tabular-nums;position:relative;white-space:nowrap}
.rwwk tr+tr td::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwwk td small{display:block;color:var(--muted);font-size:12px}
.rwwk td.lo{color:var(--warn);font-weight:600}
.rwwk a{font-weight:600}
/* the week on a phone: the days move to one line under the name (no step hidden on a phone: the walk) */
.rwwk td small.rwdl{display:none}
.rwwk .lo,.rwlo{color:var(--warn);font-weight:600}
@container rw1 (max-width:620px){.rwwk .rwdc{display:none}.rwwk td small.rwdl{display:block;color:var(--ink);white-space:normal}}
/* a phone: tighter cells and a name that may wrap, so the four columns of a report fit without a sideways scroll */
@container rw1 (max-width:560px){.rwwk th,.rwwk td{padding-left:6px;padding-right:6px}.rwwk td:first-child{white-space:normal}.rwfdet{padding:16px}.rwfdet .rwrows{margin:0 -16px}
  /* a person's own week on a phone: the day on one line, the break left to the computer (the walk: "Sched" cut, "Mon / 19 / Oct") */
  .rwwkp .rwbk{display:none}.rwwkp td:first-child{white-space:nowrap}.rwwkp td:first-child .rwtag{display:none}}
.rwscroll{overflow-x:auto;scrollbar-width:none}
.rwscroll::-webkit-scrollbar{display:none}
/* the notice */
.rwntext{white-space:pre-line;font-size:16px;line-height:1.55;margin:0 0 6px;overflow-wrap:anywhere}
.rwtick{display:flex;align-items:center;gap:10px;min-height:44px;font-weight:600;cursor:pointer}
.rwtick input[type=checkbox]{width:22px;height:22px;flex:none;margin:0}
/* settings and the profile: rows that read, Change to edit (PH1's Who's who), ONE Save */
.rwrr{position:relative;padding:0 22px}
.rwrr::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwrr>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:start;padding:14px 0;cursor:pointer;list-style:none}
.rwrr>summary::-webkit-details-marker{display:none}
.rwrr>summary b{display:block;font-weight:600}
.rwrr>summary .v{display:block;color:var(--ink);overflow-wrap:anywhere}
.rwrr>summary small{display:block;color:var(--muted);font-size:13px}
.rwrr>summary .chg{color:var(--accent);font-weight:600;font-size:14px;min-height:24px}
.rwrr>.rwrb{padding:0 0 16px}
/* placed, never auto-flowed: a narrow surface reads the label and Change on one line, the value under them; from 760px label | value | Change */
.rwrr>summary>b,.rwrrs>b{grid-column:1;grid-row:1}
.rwrr>summary>span:not(.chg),.rwrrs>span:not(.chg){grid-column:1/-1;grid-row:2;min-width:0}
.rwrr>summary>.chg,.rwrrs>.chg{grid-column:2;grid-row:1;justify-self:end}
@container rw1 (min-width:760px){.rwrr>summary{grid-template-columns:200px minmax(0,1fr) auto}.rwrr>summary>span:not(.chg),.rwrrs>span:not(.chg){grid-column:2;grid-row:1}.rwrr>summary>.chg,.rwrrs>.chg{grid-column:3}}
.rwgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));gap:4px 14px}
.rwticks{display:flex;flex-wrap:wrap;gap:4px 18px;margin:4px 0 8px}
.rwticks label{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:15px;cursor:pointer}
.rwticks input[type=checkbox]{width:20px;height:20px;margin:0;flex:none}
.rwticks.rwcol{flex-direction:column;gap:0}
.rwticks label small{color:var(--muted);font-size:13px;font-weight:400}
.rwg2{grid-template-columns:repeat(2,minmax(0,1fr))}
@container rw1 (max-width:420px){.rwg2{grid-template-columns:minmax(0,1fr)}}
.rwdates{margin:0 0 12px}
.rwdates>summary{cursor:pointer;color:var(--accent);font-weight:600;font-size:14px;min-height:44px;display:flex;align-items:center}
.rwrm{margin-top:12px;padding-top:12px;border-top:1px solid color-mix(in srgb,var(--ink) 10%,transparent)}
.rwdanger.rwdanger{color:var(--bad)}
.rwusedef{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--accent);font-weight:600;font-size:14px;cursor:pointer}
.rwusedef input[type=checkbox]{width:18px;height:18px;margin:0}
.rwsw{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-weight:600;position:relative}
.rwsw input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0;min-height:0}
.rwsw i{flex:none;width:46px;height:28px;border-radius:14px;background:var(--soft);position:relative;box-shadow:inset 0 0 0 1px var(--rwline,rgba(0,0,0,.12))}
.rwsw i::after{content:'';position:absolute;left:3px;top:3px;width:22px;height:22px;border-radius:11px;background:var(--surface);box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .2s}
.rwsw input:checked+i{background:var(--accent)}
.rwsw input:checked+i::after{left:21px}
.rwsw input:focus-visible+i{outline:2px solid var(--navy,var(--accent));outline-offset:2px}
.rwfoot{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 22px;position:relative}
.rwfoot::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.rwfoot .btn{min-height:44px}
.rwfoot .rwsp{margin-left:auto}
.rwpick{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0}
.rwpick select{min-height:44px;border:0;border-radius:14px;background:var(--soft);padding:0 12px;font:inherit;color:var(--ink);max-width:100%}
.rwpick .btn{min-height:44px}
.rwpick select{flex:1 1 240px;max-width:460px}
.rwfoot>.rwhint,.rwfoot>.rwok{margin:0}
.rwfoot.rwblock{display:block}
.rwmt{margin-top:8px}
.rwnopt{padding-top:0!important}
.rwnopb{padding-bottom:0!important}
.rwnomb{margin-bottom:6px}
.rwstop{margin:-6px 0 18px}
.rwcardh{margin:10px 0 4px}
.rwflexr{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
@container rw1 (min-width:700px){.rwgrid .rwwide{grid-column:span 2}}
/* a profile row that only reads, on the same columns as the rows with Change */
.rwrrs{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:start;padding:14px 0}
.rwrrs b{display:block;font-weight:600}
.rwrrs .v{display:block;color:var(--ink);overflow-wrap:anywhere}
.rwrrs small{display:block;color:var(--muted);font-size:13px}
.rwrrs .chg{color:var(--accent);font-weight:600;font-size:14px}
@container rw1 (min-width:760px){.rwrrs{grid-template-columns:200px minmax(0,1fr) auto}}
@media (prefers-reduced-motion:reduce){.rwsw i::after{transition:none}}/* ROLE-1 · Office roles, the role page, the desk, the invitation link, My clients: one surface each (rw1one) */
.xr1w{container-type:inline-size;container-name:xr1}
.xrlist{list-style:none;margin:0;padding:0}
.xrlist>li{position:relative}
.xrlist>li::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrrow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;align-items:center;padding:13px 22px;color:var(--ink);text-decoration:none;min-height:56px}
a.xrrow:hover,a.xrrow:focus-visible{text-decoration:none;background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
.xrrow b{font-weight:600;font-size:16px;overflow-wrap:anywhere}
.xrrow small{display:block;color:var(--muted);font-size:var(--fs-sm)}
.xrrow .xrchg{color:var(--accent);font-weight:600;font-size:14px;grid-column:2;grid-row:1}
.xrrow .xrc{display:none}
.xrrow.xrheld{background:color-mix(in srgb,var(--warn-bg) 55%,transparent)}
@container xr1 (min-width:760px){
  .xrrow{grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr) minmax(0,2fr) 80px}
  .xrrow .xrc{display:block}.xrrow .xrone{display:none}
  .xrrow .xrchg{grid-column:5;text-align:right}
  .xrhead{display:grid!important}
}
.xrhead{display:none;grid-template-columns:minmax(0,1.6fr) minmax(0,1.2fr) minmax(0,.8fr) minmax(0,2fr) 80px;gap:2px 14px;padding:10px 22px 8px;font-size:12px;font-weight:600;color:var(--muted)}
.xrgrp{padding:14px 22px 6px;font-size:12px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase;position:relative}
.xrgrp::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrhd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 22px}
.xrhd h2{margin:0;font-size:18px;font-weight:600}
.xrhd .xrsp{margin-left:auto}
.xrnew{position:relative;padding:0 22px}
.xrnew::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrnew>summary{list-style:none;display:inline-flex;margin:12px 0}
.xrnew>summary::-webkit-details-marker{display:none}
.xrnew[open]>summary{display:none}
.xrnewb{display:grid;grid-template-columns:minmax(0,1fr);gap:4px 14px;padding:14px 0 16px}
@container xr1 (min-width:760px){.xrnewb{grid-template-columns:minmax(0,1.3fr) minmax(0,1.3fr) auto auto;align-items:end}.xrnewb .rwfld{margin:0}}
.xrnewb .xrhint{grid-column:1/-1;color:var(--muted);font-size:var(--fs-sm);margin:0}
.xrchips{display:flex;flex-wrap:wrap;gap:6px}
.xrchip{display:inline-block;font-size:13px;border-radius:12px;padding:3px 10px;background:var(--accent-soft);color:var(--on-accent-soft,var(--accent));font-weight:600}
.xrgate{color:var(--muted);font-weight:400}
.xrticks label.xroff{opacity:.55;cursor:not-allowed}
.xrsecs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:4px 18px}
.xrsecs label{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:44px;font-size:15px}
.xrsecs select{min-height:44px;border:0;border-radius:12px;background:var(--soft);padding:0 10px;font:inherit}
.xrinv{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 22px;position:relative}
.xrinv code{flex:1 1 260px;min-width:0;font:14px/1.3 ui-monospace,Menlo,monospace;background:var(--soft);border-radius:12px;padding:12px 14px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.xrinv .btn{min-height:44px}
.xrinv form{margin:0;display:contents}
.xrsend{padding:0 22px 12px}
.xrsend>summary{list-style:none;display:none}
.xrsend>summary::-webkit-details-marker{display:none}
.xrsendb{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;align-items:end}
@container xr1 (min-width:700px){.xrsendb{grid-template-columns:minmax(0,26rem) auto;justify-content:start}.xrsendb>p{grid-column:1/-1;grid-row:2;margin:0}.xrsendb>button{grid-column:2;grid-row:1}}   /* the walk: Send beside its field, the hint under them */
.xrnote{color:var(--muted);font-size:var(--fs-sm);padding:0 22px 14px;margin:0}
.xrnums{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:14px;margin:0 0 18px}
.xrnum{background:var(--surface);border-radius:20px;padding:16px 20px;box-shadow:0 1px 3px rgba(20,40,80,.08),0 8px 24px rgba(20,40,80,.06);color:var(--ink);text-decoration:none;display:block}
.xrnum b{display:block;font-size:34px;font-weight:300;line-height:1.1;font-variant-numeric:tabular-nums}
.xrnum span{color:var(--muted);font-size:14px}
.xrnum:hover{text-decoration:none;filter:brightness(.985)}
.xrtwo{display:grid;grid-template-columns:minmax(0,1fr);position:relative}
.xrtwo>div{padding:14px 22px;min-width:0}
@container xr1 (min-width:760px){.xrtwo{grid-template-columns:1fr 1fr}.xrtwo>div+div{background:linear-gradient(var(--rwline),var(--rwline)) left/1px 100% no-repeat}}
.xrkv{display:grid;grid-template-columns:120px minmax(0,1fr);gap:6px 12px;font-size:15px;margin:0}
.xrkv dt{color:var(--muted)}.xrkv dd{margin:0;overflow-wrap:anywhere}
.xrdec{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:14px 22px;position:relative}
.xrdec::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrdec .btn{min-height:44px}
.xrdec form{margin:0;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.xrdec input[type=text],.xrdec input[type=date]{min-height:44px;border:0;border-radius:12px;background:var(--soft);padding:0 12px;font:inherit}
.xrtbl{width:100%;border-collapse:collapse;font-size:15px}
.xrtbl th{font-size:12px;color:var(--muted);text-align:left;font-weight:600;padding:8px 22px}
.xrtbl td{padding:12px 22px;position:relative;vertical-align:middle}
.xrtbl caption.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.xrtbl tr+tr td::before,.xrtbl tbody tr:first-child td::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrtbl .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.xrtbl input[type=text]{width:120px;min-height:44px;border:0;border-radius:12px;background:var(--soft);padding:0 12px;font:inherit}
@media (max-width:600px){.xrtbl th,.xrtbl td{padding-left:14px;padding-right:14px}.xrtbl input[type=text]{width:96px}}
.xrjob{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 14px;align-items:center;padding:13px 22px}
.xrjob b{font-weight:600}.xrjob small{display:block;color:var(--muted);font-size:13px}
@container xr1 (min-width:860px){.xrjob{grid-template-columns:minmax(0,2fr) minmax(0,1.3fr) minmax(0,1.3fr) minmax(0,1fr) 190px}.xrjob>.btn{justify-self:end}}   /* a fixed last column: an open row stays on the list's grid (the walk) */
.xrjob .xrjm{display:none}@container xr1 (min-width:860px){.xrjob .xrjm{display:block}.xrjob .xrjo{display:none}}
/* BL2 · Send to my candidates beside Submit: one row of two buttons, under the job on a phone, the last column on a computer */
.xrjb{display:flex;gap:8px;flex-wrap:wrap;grid-column:1/-1}.xrjb .btn{min-height:44px}
@container xr1 (min-width:860px){.xrjob:has(.xrjb){grid-template-columns:minmax(0,2fr) minmax(0,1.2fr) minmax(0,1.2fr) minmax(0,1fr) 360px}.xrjb{grid-column:auto;justify-content:flex-end;flex-wrap:nowrap}}
.xrjob details>summary{list-style:none}.xrjob details>summary::-webkit-details-marker{display:none}
.xrsub{grid-column:1/-1;padding:4px 0 6px}
.xrsub form{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
@container xr1 (min-width:760px){.xrsub form{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto auto;align-items:end}}
.xrsub select,.xrsub input[type=text]{width:100%;min-height:44px;border:0;border-radius:12px;background:var(--soft);padding:0 12px;font:inherit;box-sizing:border-box}
html:has(.xr1w){scroll-padding-bottom:calc(var(--tabh,74px) + var(--sab,0px) + 24px)}
.xrnm{display:block;min-width:0}
.xrhdl{position:relative}
.xrhdl::before{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(var(--rwline),var(--rwline))}
.xrph{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 22px}
.xrav{flex:0 0 auto;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--on-accent-soft,var(--accent));font:600 20px/1 inherit}
.xrphn{flex:1 1 220px;min-width:0}.xrphn h2{margin:0;font-size:20px;font-weight:600;overflow-wrap:anywhere}
.xrmeta{color:var(--muted);font-size:var(--fs-sm);margin-top:2px;overflow-wrap:anywhere}
.xracts{display:flex;gap:8px;flex-wrap:wrap}.xracts .btn{min-height:44px}
.xrtw{overflow-x:auto;-webkit-overflow-scrolling:touch}
.xrok{color:var(--ok-ink,var(--ink));background:var(--ok-bg);border-radius:12px;padding:10px 14px;margin:0 22px 12px}
.xrrow a.xrchg{text-decoration:none;min-height:44px;display:inline-flex;align-items:center}
.xrsub .rwfld{margin:0}
.xrh3{margin:0 0 8px;font-size:14px;font-weight:600;color:var(--muted)}
.xrlab{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.xrdec .rwfld{margin:0;display:flex;flex-direction:column;gap:4px}
.xrhint{flex-basis:100%;margin:0;color:var(--muted);font-size:var(--fs-sm)}
.xrdec .btn[disabled]{opacity:.5;cursor:not-allowed}
.xrnote.xrp0{padding:0}.xrnote.xrpb8{padding:0 0 8px}.xrnote.xrpv6{padding:6px 0}.xrnote.xrpt10{padding:10px 22px 0}
.xrgrp.xrgl0{padding-left:0}.xrgrp.xrgl0::before{display:none}
.xrmb12{margin:0 0 12px}.xrtw.xrpt8{padding-top:8px}.xrrow .xrc.xrcw{grid-column:3/-1}
.xrprofs{margin-top:6px}.xrprofs>summary{cursor:pointer;list-style:none}.xrprofs>summary::-webkit-details-marker{display:none}
.xrprofs .xrchg{color:var(--accent);font-weight:600}.xrprofs form{margin-top:8px;text-align:left}.xrprofs .xrq{display:block;font-weight:600}
.rw1one.xrflat{box-shadow:none;margin:0}p.xrwhat{margin:14px 2px}
.xrrow>.xrone{grid-column:1/-1}   /* the walk: the phone's line under the name, never a second column squeezing it to a letter a line */
/* the walk: Team's professions box: its row reads from the top, the box takes room, the ticks in columns (not one ragged column) */
tr:has(details.xrprofs[open])>td{vertical-align:top}
details.xrprofs[open]{width:min(560px,86vw)}   /* a table cell ignores min-width: the box itself takes the room */
.xrprofs .rwticks{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:2px 12px}
.xrprofs .rwticks label{display:flex;align-items:center;gap:8px;min-height:40px}
.xrprt .xrsh{display:none}.xrprt small{display:block;font-size:13px;color:var(--muted)}.xrprt .xrwt{color:var(--ink);font-weight:600}
@media (max-width:600px){.xrprt .xrshc{display:none}.xrprt .xrsh{display:block}.xrprt th,.xrprt td{padding-left:12px;padding-right:12px}.xrprt input[type=text]{width:84px}}   /* the walk: the shift under the role on a phone, so New rate fits */
@media (max-width:600px){.xrnums{grid-template-columns:1fr 1fr;gap:10px}.xrnum{padding:12px 14px;border-radius:16px}.xrnum span{font-size:13px}}   /* the walk: two by two on a phone, so the link card shows on the first screen */
.xrmore{grid-column:1/-1}.xrmore>summary{cursor:pointer;color:var(--accent);font-weight:600;min-height:44px;display:flex;align-items:center;list-style:none}.xrmore>summary::-webkit-details-marker{display:none}
.xrmore>.rwgrid{padding:0}.rwfld .xrro{display:flex;align-items:center;min-height:44px;font-weight:600}
.xrinvl{margin:0 22px 12px}
.xrjob small.xron{color:var(--ink);font-weight:600}