/* [next]/internal/font/google/instrument_sans_64bf3bc2.module.css [app-client] (css) */
@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/c7f47671e39f7787-s.088ba3ed.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 400;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/f06bf9da926bae75-s.p.c68a79fb.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/c7f47671e39f7787-s.088ba3ed.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 500;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/f06bf9da926bae75-s.p.c68a79fb.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/c7f47671e39f7787-s.088ba3ed.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 600;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/f06bf9da926bae75-s.p.c68a79fb.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/c7f47671e39f7787-s.088ba3ed.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: Instrument Sans;
  font-style: normal;
  font-weight: 700;
  font-stretch: 100%;
  font-display: swap;
  src: url("../media/f06bf9da926bae75-s.p.c68a79fb.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: Instrument Sans Fallback;
  src: local(Arial);
  ascent-override: 94.42%;
  descent-override: 24.33%;
  line-gap-override: 0.0%;
  size-adjust: 102.74%;
}

.instrument_sans_64bf3bc2-module__kMvudW__className {
  font-family: Instrument Sans, Instrument Sans Fallback;
  font-style: normal;
}

.instrument_sans_64bf3bc2-module__kMvudW__variable {
  --font-sans: "Instrument Sans", "Instrument Sans Fallback";
}

/* [next]/internal/font/google/ibm_plex_mono_e06d9437.module.css [app-client] (css) */
@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/e390973e931a41c5-s.a82ecf4e.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/59b15b4bcd7b1eb5-s.afa48be3.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/e532fa1b9921e1cd-s.764b43eb.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/2fe89d53234c61d4-s.cb53f04b.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../media/99e609270109b47d-s.p.64b9304e.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/5e05ae5b48faa55e-s.6b5ea6af.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/a7afbb44bec2bb18-s.1dcddae6.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/02263ebadd758ea4-s.8da66e7f.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/68757d6cddeff913-s.e6cd1753.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/effe91970fc4db64-s.p.19510058.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/6ff74e33ebd7bca3-s.140490a3.woff2") format("woff2");
  unicode-range: U+460-52F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/1a69062cfe6f77f8-s.b36ae37c.woff2") format("woff2");
  unicode-range: U+301, U+400-45F, U+490-491, U+4B0-4B1, U+2116;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/9a4838fcda0d1bca-s.bf5f8a12.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/2e95a7d252b9825a-s.10086973.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: IBM Plex Mono;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/23b7a97ae3b5c134-s.p.2902b61f.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: IBM Plex Mono Fallback;
  src: local(Arial);
  ascent-override: 76.16%;
  descent-override: 20.43%;
  line-gap-override: 0.0%;
  size-adjust: 134.59%;
}

.ibm_plex_mono_e06d9437-module__v8ILfq__className {
  font-family: IBM Plex Mono, IBM Plex Mono Fallback;
  font-style: normal;
}

.ibm_plex_mono_e06d9437-module__v8ILfq__variable {
  --font-mono: "IBM Plex Mono", "IBM Plex Mono Fallback";
}

/* [next]/internal/font/google/league_spartan_b1f7f66e.module.css [app-client] (css) */
@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/8bf306ca80378054-s.0713edff.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/d33cd7f74dcc750d-s.5d76a523.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../media/7a514bda021b6b92-s.p.b628dbda.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/8bf306ca80378054-s.0713edff.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/d33cd7f74dcc750d-s.5d76a523.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../media/7a514bda021b6b92-s.p.b628dbda.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/8bf306ca80378054-s.0713edff.woff2") format("woff2");
  unicode-range: U+102-103, U+110-111, U+128-129, U+168-169, U+1A0-1A1, U+1AF-1B0, U+300-301, U+303-304, U+308-309, U+323, U+329, U+1EA0-1EF9, U+20AB;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/d33cd7f74dcc750d-s.5d76a523.woff2") format("woff2");
  unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: League Spartan;
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../media/7a514bda021b6b92-s.p.b628dbda.woff2") format("woff2");
  unicode-range: U+??, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: League Spartan Fallback;
  src: local(Arial);
  ascent-override: 75.47%;
  descent-override: 23.72%;
  line-gap-override: 0.0%;
  size-adjust: 92.75%;
}

.league_spartan_b1f7f66e-module__7pRoZq__className {
  font-family: League Spartan, League Spartan Fallback;
  font-style: normal;
}

.league_spartan_b1f7f66e-module__7pRoZq__variable {
  --font-condensed: "League Spartan", "League Spartan Fallback";
}

/* [project]/packages/ui/src/tokens.css [app-client] (css) */
:root {
  --bg: #f6f4ee;
  --bg-2: #fff;
  --fg: #101418;
  --muted: #5b6774;
  --stroke: #10141833;
  --accent: #f8b014;
  --focus: #377df7;
  --ok: #1f883d;
  --warn: #b35a00;
  --danger: #d1252f;
  --radius: 6px;
  --shadow: 0 1px 2px #10141814;
  --shadow-2: 0 8px 24px #10141829;
  --cm-grid: #1014180f;
  --cm-blob-warm: #f8b0140e;
  --cm-blob-cool: #0000;
}

/* [project]/packages/ui/src/base.css [app-client] (css) */
:root {
  --container: 1120px;
}

* {
  box-sizing: border-box;
}

html, body {
  height: 100%;
}

html {
  --lightningcss-light: initial;
  --lightningcss-dark: ;
  color-scheme: light;
  -webkit-tap-highlight-color: transparent;
}

body {
  --cm-bg-base: var(--bg);
  --cm-grid-color: var(--cm-grid);
  --cm-blob-warm-active: var(--cm-blob-warm);
  --cm-blob-cool-active: var(--cm-blob-cool);
  background: radial-gradient(1100px 520px at 20% -20%, var(--cm-blob-warm-active), transparent 60%), radial-gradient(900px 520px at 100% 0%, var(--cm-blob-cool-active), transparent 58%), repeating-linear-gradient(0deg, var(--cm-grid-color), var(--cm-grid-color) 1px, transparent 1px, transparent 32px), repeating-linear-gradient(90deg, var(--cm-grid-color), var(--cm-grid-color) 1px, transparent 1px, transparent 32px), var(--cm-bg-base);
  color: var(--fg);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  margin: 0;
  font-size: 16px;
  line-height: 1.45;
}

body[data-cm-tex="white-grid"] {
  --cm-bg-base: var(--bg-2);
  --cm-grid-color: color-mix(in srgb, var(--fg), transparent 92%);
  --cm-blob-warm-active: #0000;
  --cm-blob-cool-active: #0000;
}

body[data-cm-tex="paper-grid"] {
  --cm-bg-base: var(--bg);
  --cm-grid-color: var(--cm-grid);
  --cm-blob-warm-active: var(--cm-blob-warm);
  --cm-blob-cool-active: var(--cm-blob-cool);
}

body[data-cm-tex="paper"] {
  --cm-bg-base: var(--bg);
  --cm-grid-color: transparent;
  --cm-blob-warm-active: #0000;
  --cm-blob-cool-active: #0000;
}

body[data-cm-tex="white"] {
  --cm-bg-base: var(--bg-2);
  --cm-grid-color: transparent;
  --cm-blob-warm-active: #0000;
  --cm-blob-cool-active: #0000;
}

a {
  color: inherit;
  text-decoration: none;
}

h1, h2, h3 {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  text-wrap: balance;
}

main {
  min-height: 100%;
}

.container {
  max-width: var(--container);
  margin: 0 auto;
  padding: 20px;
}

.content {
  max-width: var(--container);
  margin: 0 auto;
  padding: 18px 20px 40px;
}

.card {
  background: var(--bg-2);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
}

.cardHeader {
  padding: 18px 18px 0;
}

.cardBody {
  padding: 18px;
}

.muted {
  color: var(--muted);
}

.mono {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.calendarCell {
  text-align: left;
  width: 100%;
  color: inherit;
  font: inherit;
  appearance: none;
  background: none;
  border: 0;
  padding: 0;
  display: block;
}

.calendarCell:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 15%);
  outline-offset: 2px;
}

.timesheetCellHint {
  letter-spacing: .04em;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.15;
}

.timesheetCellContent {
  grid-template-rows: auto 1fr;
  gap: 8px;
  min-height: 72px;
  padding: 10px;
  display: grid;
}

.timesheetCellContentLocked {
  position: relative;
}

.timesheetCellContentLocked .timesheetCellHeader {
  padding-right: 16px;
}

.timesheetCellHeader {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: flex-start;
  column-gap: 4px;
  display: grid;
  overflow: hidden;
}

.timesheetCellDayNum {
  font-family: var(--font-mono);
  font-size: 13px;
  line-height: 1;
}

.timesheetCellHours {
  white-space: nowrap;
  text-align: right;
  font-size: 12px;
  line-height: 1;
}

.timesheetCellHintSpacer {
  height: 12px;
}

.timesheetCalendarDayLink {
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

.timesheetCellSelectMark {
  border-radius: 2px;
  place-items: center;
  width: 16px;
  height: 16px;
  font-size: 11px;
  font-weight: 900;
  line-height: 1;
  display: grid;
  position: absolute;
  bottom: 8px;
  right: 8px;
}

.timesheetCellLock {
  width: 14px;
  height: 14px;
  color: color-mix(in srgb, var(--muted), var(--fg) 16%);
  pointer-events: none;
  display: block;
  position: absolute;
  top: 8px;
  right: 8px;
}

.timesheetCellLock svg {
  width: 100%;
  height: 100%;
  display: block;
}

.timesheetCellHint, .timesheetCellHintSpacer {
  align-self: end;
}

.timesheetDayPlaceholder {
  height: 72px;
}

.timesheetCellHoursCompact, .timesheetCellHintShort {
  display: none;
}

.timesheetCellHintFull {
  display: inline;
}

.timesheetMonthGridWrap {
  padding-bottom: 2px;
  overflow: auto hidden;
}

.timesheetMonthGrid {
  min-width: 700px;
}

.timesheetCalendarTopBar {
  justify-content: stretch;
  align-items: center;
  width: 100%;
  min-height: 44px;
  display: flex;
}

.timesheetMonthNav {
  grid-template-columns: 56px minmax(0, 1fr) 56px;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  display: grid;
}

.timesheetMonthNavBtn {
  color: color-mix(in srgb, var(--fg), black 6%);
  justify-content: center;
  place-self: center;
  align-items: center;
  transition: background-color .15s, color .15s, opacity .15s;
  background: none !important;
  border: 0 !important;
  border-radius: 999px !important;
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  padding: 0 !important;
  display: inline-flex !important;
}

.timesheetMonthNavChevron {
  border-bottom: 2px solid;
  border-right: 2px solid;
  width: 10px;
  height: 10px;
  display: block;
}

.timesheetMonthNavChevron.isPrev {
  transform: rotate(135deg);
}

.timesheetMonthNavChevron.isNext {
  transform: rotate(-45deg);
}

.timesheetMonthNavBtn:hover:not(:disabled) {
  background: color-mix(in srgb, var(--fg), transparent 91%) !important;
}

.timesheetMonthNavBtn:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 1px;
}

.timesheetMonthNavBtn:disabled {
  opacity: .34;
}

.timesheetMonthNavLabel {
  text-align: center;
  white-space: nowrap;
  width: 100%;
  min-width: 0;
  max-width: 260px;
  min-height: 44px;
  font-family: var(--font-sans);
  letter-spacing: .01em;
  color: var(--fg);
  justify-content: center;
  align-items: center;
  margin: 0 auto;
  padding-left: 14px;
  padding-right: 14px;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
  display: inline-flex;
}

.timesheetLegendRow {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px 16px;
  display: grid;
}

.timesheetLegendItem {
  grid-template-columns: 12px minmax(0, 1fr);
  align-items: center;
  column-gap: 8px;
  min-width: 0;
  display: grid;
}

.timesheetLegendSwatch {
  width: 12px;
  height: 12px;
}

.timesheetLegendLabel {
  font-size: 13px;
  line-height: 1.25;
}

.field {
  gap: 8px;
  margin-top: 14px;
  display: grid;
}

.labelRow {
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  display: flex;
}

.label {
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: 12px;
}

.input {
  appearance: none;
  background: var(--bg-2);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  width: 100%;
  min-height: 44px;
  color: var(--fg);
  outline: none;
  padding: 10px 12px;
}

.input:focus {
  border-color: color-mix(in srgb, var(--focus), black 6%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 72%);
}

.input:focus:not(:focus-visible) {
  border-color: var(--stroke);
  box-shadow: none;
}

.btn {
  appearance: none;
  border: 1px solid var(--stroke);
  background: var(--bg-2);
  color: var(--fg);
  border-radius: var(--radius);
  text-align: center;
  cursor: pointer;
  touch-action: manipulation;
  justify-content: center;
  align-items: center;
  min-height: 44px;
  padding: 10px 14px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.2;
  transition: background-color .14s, border-color .14s, color .14s, box-shadow .14s;
  display: inline-flex;
}

.btn:hover {
  background: color-mix(in srgb, var(--bg-2), var(--fg) 4%);
  border-color: color-mix(in srgb, var(--stroke), black 12%);
}

.btn:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 70%);
  outline: none;
}

.btn:disabled {
  cursor: not-allowed;
  opacity: 1;
  color: color-mix(in srgb, var(--fg), var(--muted) 48%);
  background: color-mix(in srgb, var(--bg-2), var(--fg) 3%);
  border-color: color-mix(in srgb, var(--stroke), var(--fg) 20%);
  box-shadow: none;
}

.btnPrimary {
  border-color: color-mix(in srgb, var(--accent), black 16%);
  background: var(--accent);
  color: #fff;
}

.btnAction {
  border-color: color-mix(in srgb, var(--focus), black 16%);
  background: var(--focus);
  color: #fff;
}

.btnDanger {
  border-color: color-mix(in srgb, var(--danger), black 18%);
  background: var(--danger);
  color: #fff;
}

.btnSuccess {
  border-color: color-mix(in srgb, var(--ok), black 16%);
  background: var(--ok);
  color: #fff;
}

.btnPrimary:hover:not(:disabled) {
  background: color-mix(in srgb, var(--accent), black 10%);
}

.btnAction:hover:not(:disabled) {
  background: color-mix(in srgb, var(--focus), black 10%);
}

.btnDanger:hover:not(:disabled) {
  background: color-mix(in srgb, var(--danger), black 10%);
}

.btnSuccess:hover:not(:disabled) {
  background: color-mix(in srgb, var(--ok), black 10%);
}

.btnPrimary:disabled {
  background: color-mix(in srgb, var(--accent), white 34%);
  border-color: color-mix(in srgb, var(--accent), black 8%);
  color: #fff;
}

.btnAction:disabled {
  background: color-mix(in srgb, var(--focus), white 34%);
  border-color: color-mix(in srgb, var(--focus), black 8%);
  color: #fff;
}

.btnDanger:disabled {
  background: color-mix(in srgb, var(--danger), white 34%);
  border-color: color-mix(in srgb, var(--danger), black 8%);
  color: #fff;
}

.btnSuccess:disabled {
  background: color-mix(in srgb, var(--ok), white 34%);
  border-color: color-mix(in srgb, var(--ok), black 8%);
  color: #fff;
}

input[type="checkbox"], input[type="radio"] {
  accent-color: var(--focus);
  width: 16px;
  height: 16px;
}

input[type="checkbox"]:focus-visible, input[type="radio"]:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 65%);
  outline-offset: 2px;
}

.pill {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  color: var(--muted);
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  font-size: 13px;
  display: inline-flex;
}

.pillStatusDraft {
  color: var(--muted);
}

.pillStatusSubmitted {
  border-color: color-mix(in srgb, var(--focus), transparent 50%);
  background: color-mix(in srgb, var(--focus), white 92%);
  color: var(--fg);
}

.pillStatusApproved {
  border-color: color-mix(in srgb, var(--ok), transparent 55%);
  background: color-mix(in srgb, var(--ok), white 94%);
  color: var(--fg);
}

.pillStatusRejected {
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
  background: color-mix(in srgb, var(--danger), white 92%);
  color: var(--fg);
}

.pillStatusLocked {
  border-color: color-mix(in srgb, var(--focus), transparent 55%);
  background: color-mix(in srgb, var(--focus), white 94%);
  color: var(--fg);
}

.topbar {
  z-index: 10;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  background: color-mix(in srgb, var(--bg-2), transparent 10%);
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  position: sticky;
  top: 0;
}

.topbarInner, .appTopbarInner {
  max-width: var(--container);
  justify-content: space-between;
  align-items: center;
  gap: 14px;
  margin: 0 auto;
  padding: 14px 20px;
  display: flex;
}

.topbarActions, .appTopbarActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  display: flex;
}

.topbarRight, .appTopbarRight {
  align-items: center;
  gap: 10px;
  display: inline-flex;
}

.brand, .appBrand {
  align-items: center;
  gap: 12px;
  display: flex;
}

.brandLogo, .appBrandLogo {
  flex: none;
  width: auto;
  height: 24px;
}

.brandBlock, .appBrandBlock {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.brandTitle, .appBrandTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  font-size: 18px;
  line-height: 1.1;
}

.brandWelcome, .appBrandWelcome {
  font-size: 12px;
}

.nav, .appNav {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.navLink, .appNavLink {
  border-radius: var(--radius);
  color: var(--muted);
  border: 1px solid #0000;
  padding: 10px 12px;
}

.navLink:hover, .appNavLink:hover {
  border-color: color-mix(in srgb, var(--stroke), transparent 0%);
  color: var(--fg);
}

.navLink:focus-visible, .appNavLink:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 25%);
  outline-offset: 2px;
  border-color: color-mix(in srgb, var(--stroke), transparent 0%);
  color: var(--fg);
}

.navLinkActive, .appNavLinkActive {
  border-color: color-mix(in srgb, var(--focus), transparent 48%);
  color: var(--fg);
  background: color-mix(in srgb, var(--focus), white 90%);
}

.card:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 25%);
  outline-offset: 2px;
}

.localeSwitcher {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg-2);
  align-items: center;
  display: inline-flex;
  overflow: hidden;
}

.localeOption {
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  border-left: 1px solid var(--stroke);
  padding: 9px 10px;
  font-size: 12px;
}

.localeOption:first-child {
  border-left: none;
}

.localeOption:hover {
  background: color-mix(in srgb, var(--bg-2), var(--fg) 2%);
  color: var(--fg);
}

.localeOption:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 20%);
  outline-offset: -2px;
}

.localeOptionActive {
  background: color-mix(in srgb, var(--accent), white 92%);
  color: var(--fg);
}

.skipLink {
  z-index: 100;
  background: var(--bg-2);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  padding: 10px 12px;
  position: absolute;
  top: 10px;
  left: 10px;
  transform: translateY(-120%);
}

.skipLink:focus, .skipLink:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 15%);
  outline-offset: 2px;
  transform: translateY(0);
}

.errorBox {
  border: 1px solid color-mix(in srgb, var(--danger), transparent 55%);
  background: color-mix(in srgb, var(--danger), white 92%);
  border-radius: var(--radius);
  color: color-mix(in srgb, var(--danger), black 15%);
  margin-top: 12px;
  padding: 12px 14px;
  font-size: 14px;
}

.cmPopover {
  z-index: 20;
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg-2);
  box-shadow: var(--shadow);
  max-height: 280px;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  overflow: auto;
}

.cmPopoverList {
  gap: 2px;
  padding: 6px;
  display: grid;
}

.cmPopoverOption {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 2px;
  gap: 2px;
  padding: 8px 10px;
  display: grid;
}

.cmPopoverOption:hover {
  background: color-mix(in srgb, var(--bg), var(--fg) 4%);
}

.cmPopoverOption.isActive {
  background: color-mix(in srgb, var(--focus), white 88%);
}

.cmPopoverOption:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 20%);
  outline-offset: 1px;
}

@media (max-width: 960px) {
  .topbarInner, .appTopbarInner {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .brand, .appBrand {
    width: 100%;
  }

  .topbarActions, .appTopbarActions {
    justify-content: space-between;
    width: 100%;
  }
}

@media (max-width: 680px) {
  .topbarInner, .appTopbarInner {
    gap: 8px;
    padding: 8px 10px;
  }

  .content {
    padding: 12px 12px 28px;
  }

  .container {
    padding: 12px;
  }

  .topbarActions, .appTopbarActions {
    gap: 6px;
    display: grid;
  }

  .nav, .appNav {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 4px;
    width: 100%;
    display: grid;
  }

  .navLink, .appNavLink {
    text-align: center;
    justify-content: center;
    align-items: center;
    min-height: 44px;
    padding: 6px;
    font-size: 13px;
    line-height: 1.2;
    display: inline-flex;
  }

  .topbarRight, .appTopbarRight {
    flex-wrap: nowrap;
    justify-content: space-between;
    gap: 6px;
    width: 100%;
  }

  .localeSwitcher {
    flex: auto;
    min-width: 0;
  }

  .localeOption {
    text-align: center;
    flex: 1 1 0;
    padding: 9px 8px;
  }

  .topbarRight form, .appTopbarRight form {
    flex: none;
  }

  .topbarRight form .btn, .appTopbarRight form .btn {
    min-width: 88px;
    min-height: 44px;
    padding-left: 8px;
    padding-right: 8px;
  }

  .brandTitle {
    font-size: 16px !important;
  }

  .brandWelcome {
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
    line-height: 1.2;
    overflow: hidden;
    font-size: 11px !important;
  }
}

@media (max-width: 420px) {
  .navLink, .appNavLink {
    font-size: 12px;
  }

  .brandTitle {
    font-size: 15px !important;
  }

  .brandWelcome {
    display: none;
  }
}

.timesheetDayEditorShellBody {
  gap: 12px;
  display: grid;
}

.timesheetDayEditorSection {
  gap: 10px;
  display: grid;
}

.timesheetDayEditorActions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.timesheetDayEditorError {
  margin: 0;
}

/* [project]/apps/admin/src/app/globals.css [app-client] (css) */
:root {
  --admin-shell-max: 1660px;
  --admin-shell-gutter: 24px;
  --admin-sidebar-w: 300px;
  --admin-shell-gap: 16px;
}

html {
  scrollbar-gutter: stable;
}

.localeSwitcher {
  --admin-locale-width: 58px;
  --admin-locale-min-h: 44px;
  background: none;
  border: 0;
  border-radius: 0;
  width: fit-content;
  min-width: 0;
  display: inline-flex;
  position: relative;
  overflow: visible;
}

.localeTrigger {
  width: var(--admin-locale-width);
  min-width: var(--admin-locale-width);
  min-height: var(--admin-locale-min-h);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  box-sizing: border-box;
  color: var(--fg);
  font: inherit;
  cursor: pointer;
  -webkit-user-select: none;
  user-select: none;
  white-space: nowrap;
  grid-template-columns: 16px 2ch;
  justify-content: center;
  align-items: center;
  column-gap: 6px;
  padding: 5px 6px;
  font-size: .94rem;
  font-weight: 500;
  line-height: 1;
  display: grid;
}

.localeTrigger:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus), transparent 78%);
  outline: none;
}

.localeTrigger .localeCode, .localeMenuItem .localeCode {
  letter-spacing: .01em;
  text-align: left;
  width: 2ch;
  font-size: .86em;
  font-weight: 500;
  line-height: 1;
}

.localeFlag {
  object-fit: cover;
  flex: none;
  width: 16px;
  height: 11px;
  display: block;
}

.localeMenu {
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  box-shadow: none;
  z-index: 60;
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
  overflow: hidden;
}

.localeSwitcherOpen {
  z-index: 61;
}

.localeSwitcherOpen .localeMenu {
  display: grid;
}

.localeMenuItem {
  min-height: 44px;
  color: var(--fg);
  box-sizing: border-box;
  background: none;
  border: 0;
  border-radius: 0;
  grid-template-columns: 16px 2ch;
  justify-content: center;
  align-items: center;
  column-gap: 6px;
  padding: 6px 8px;
  font-weight: 500;
  line-height: 1;
  text-decoration: none;
  display: grid;
}

.localeMenuItem + .localeMenuItem {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 18%);
}

.localeMenuItem:hover, .localeMenuItem:focus-visible {
  background: color-mix(in srgb, var(--bg-2), var(--fg) 2%);
}

.localeMenu:focus-within {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus), transparent 78%);
}

.localeMenuItem:focus-visible {
  outline: none;
}

.adminBrand {
  gap: 10px;
}

.adminBrandBlock {
  gap: 2px;
  display: grid;
}

.adminBrandTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  font-size: 18px;
  line-height: 1.1;
}

.adminBrandWelcome {
  font-size: 12px;
}

.adminBrandLogo {
  flex: none;
  width: auto;
  height: 24px;
}

.adminTopbarInner {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  display: grid;
}

.adminTopbar .topbarInner, .adminTopbar .appTopbarInner {
  max-width: var(--admin-shell-max);
  padding-left: var(--admin-shell-gutter);
  padding-right: var(--admin-shell-gutter);
  margin: 0 auto;
}

html[data-admin-shell-align="content-only"] .adminTopbar .topbarInner, html[data-admin-shell-align="content-only"] .adminTopbar .appTopbarInner {
  width: 100%;
  max-width: none;
  margin: 0;
}

html[data-admin-shell-align="content-only"] main.content {
  max-width: none;
  margin: 0;
}

html[data-admin-shell-align="content-only"] .adminPage {
  max-width: var(--admin-shell-max);
  margin-left: auto;
  margin-right: auto;
}

html[data-admin-shell-align="content-only"] .adminSettingsShell {
  width: 100%;
}

html[data-admin-shell-align="content-only"] .adminSettingsContent {
  width: 100%;
  max-width: calc(var(--admin-shell-max)  - var(--admin-sidebar-w)  - var(--admin-shell-gap));
  margin-left: auto;
  margin-right: auto;
}

html[data-admin-shell-align="content-only"][data-admin-sidebar-collapsed="1"] .adminSettingsContent {
  max-width: var(--admin-shell-max);
}

html[data-admin-shell-align="content-only"] .adminSettingsPage {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

main.content {
  max-width: var(--admin-shell-max);
  padding-left: var(--admin-shell-gutter);
  padding-right: var(--admin-shell-gutter);
  margin: 0 auto;
}

.adminTopbarActions {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  width: auto;
  display: grid;
}

.adminNavRow {
  justify-self: end;
  align-items: center;
  display: flex;
}

.adminNavRow .nav {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: end;
  gap: 2px;
  width: auto;
  display: inline-flex;
}

.adminNavRow .navLink {
  text-align: center;
  white-space: nowrap;
  min-width: 0;
  min-height: 44px;
  color: var(--muted);
  background: none;
  border: 0;
  border-bottom: 2px solid #0000;
  border-radius: 0;
  justify-content: center;
  align-items: center;
  padding: 8px 14px 6px;
  transition: color .14s, border-color .14s, background-color .14s;
  display: inline-flex;
}

.adminNavRow .navLink:hover {
  color: var(--fg);
  background: color-mix(in srgb, var(--bg-2), var(--fg) 2%);
}

.adminNavRow .navLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 72%);
  border-bottom-color: color-mix(in srgb, var(--focus), transparent 55%);
  outline: none;
}

.adminNavRow .navLinkActive {
  color: var(--fg);
  border-bottom-color: color-mix(in srgb, var(--focus), transparent 24%);
  background: color-mix(in srgb, var(--focus), white 94%);
}

.adminTopbarRight {
  grid-template-columns: auto 88px;
  justify-self: end;
  align-items: center;
  gap: 8px;
  display: inline-grid;
}

.adminTopbarRight form {
  width: 100%;
}

.adminTopbarRight .localeSwitcher {
  align-self: center;
}

.adminTopbarRight .localeTrigger {
  --admin-locale-width: 58px;
  --admin-locale-min-h: 44px;
  padding: 5px 6px;
}

.adminTopbarRight form .btn {
  box-sizing: border-box;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: 44px;
  display: inline-flex;
  padding-left: 8px !important;
  padding-right: 8px !important;
}

.adminLoginMain {
  place-items: center;
  min-height: 100vh;
  padding-top: 24px;
  padding-bottom: 24px;
  display: grid;
}

.adminLoginCard {
  width: min(520px, 100%);
}

.adminLoginMeta {
  gap: 10px;
  display: grid;
}

.adminLoginBrandRow {
  flex-wrap: nowrap;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  display: flex;
}

.adminLoginBrandLogo {
  flex: none;
  width: auto;
  height: 28px !important;
}

.adminLoginVersionPill {
  flex: 1;
  justify-content: center;
  align-items: center;
  gap: 6px;
  min-width: 0;
  min-height: 42px;
  padding: 8px 10px !important;
}

.adminLoginVersionPill .muted {
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: 12px;
  line-height: 1.2;
  overflow: hidden;
}

.adminLoginVersionCode {
  color: var(--accent);
}

.adminLoginBrandRow .localeSwitcher {
  flex: none;
}

.adminLoginBrandRow .localeTrigger {
  --admin-locale-width: 62px;
  --admin-locale-min-h: 44px;
}

.adminLoginTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  margin: 14px 0 8px;
  font-size: 40px;
  line-height: 1.05;
}

.adminLoginSubtitle {
  max-width: 36ch;
  margin: 0;
}

.adminLoginSubmitRow {
  margin-top: 18px;
}

.passwordInputControl {
  gap: 4px;
  display: grid;
}

.passwordInputWrap {
  position: relative;
}

.passwordInputField {
  padding-right: 44px !important;
}

.passwordInputField::-ms-reveal {
  display: none;
}

.passwordInputField::-ms-clear {
  display: none;
}

.passwordToggleBtn {
  border-radius: var(--radius);
  width: 30px;
  height: 30px;
  color: color-mix(in srgb, var(--fg), black 8%);
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
  position: absolute;
  top: 50%;
  right: 8px;
  transform: translateY(-50%);
}

.passwordToggleBtn:hover {
  background: color-mix(in srgb, var(--fg), transparent 92%);
}

.passwordToggleBtn:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 65%);
  outline: none;
}

.passwordToggleIcon {
  width: 20px;
  height: 20px;
  display: block;
}

.passwordCapsSlot {
  align-items: center;
  min-height: 18px;
  display: flex;
}

.passwordCapsMessage {
  color: var(--muted);
  align-items: center;
  gap: 6px;
  margin: 0;
  font-size: 13px;
  line-height: 1.25;
  display: inline-flex;
}

.passwordCapsInfoIcon {
  width: 18px;
  height: 18px;
  display: block;
}

.adminPage, .adminModuleBody {
  gap: 12px;
  display: grid;
}

.adminSettingsShell {
  grid-template-columns: var(--admin-sidebar-w) minmax(0, 1fr);
  gap: var(--admin-shell-gap);
  align-items: start;
  display: grid;
}

html[data-admin-sidebar-collapsed="1"] .adminSettingsShell {
  grid-template-columns: minmax(0, 1fr);
}

.adminSettingsSidebarColumn {
  align-self: stretch;
  min-width: 0;
  position: relative;
}

.adminSettingsSidebar {
  box-shadow: none;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: none;
  -ms-overflow-style: none;
  background: none;
  border: none;
  height: calc(100dvh - 96px);
  min-height: 0;
  position: sticky;
  top: 86px;
  overflow-y: auto;
}

.adminSettingsShell .adminSettingsSidebarColumn:after {
  content: "";
  background: color-mix(in srgb, var(--stroke), transparent 8%);
  pointer-events: none;
  width: 1px;
  position: absolute;
  top: -20px;
  bottom: -24px;
  right: 10px;
}

html[data-admin-sidebar-collapsed="1"] .adminSettingsSidebarColumn {
  display: none;
}

.adminSettingsSidebar::-webkit-scrollbar {
  width: 0;
  height: 0;
}

.adminSettingsSidebarBody {
  gap: 12px;
  height: auto;
  min-height: 0;
  padding: 14px 12px 12px;
  display: grid;
  overflow: visible;
}

.adminSettingsSidebarTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  margin: 0;
  font-size: 24px;
  line-height: 1;
}

.adminSettingsSidebarHead {
  display: block;
}

.adminSettingsNav {
  gap: 10px;
  display: grid;
}

.adminSettingsNavGroup {
  gap: 7px;
  display: grid;
}

.adminSettingsNavGroup + .adminSettingsNavGroup {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 16%);
  padding-top: 12px;
}

.adminSettingsNavGroupTitle {
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
  font-size: 11px;
  font-weight: 700;
}

.adminSettingsNavList {
  gap: 0;
  display: grid;
}

.adminSettingsNavLink {
  background: none;
  border: none;
  border-radius: 6px;
  align-items: center;
  gap: 0;
  min-width: 0;
  min-height: 42px;
  padding: 7px 12px;
  transition: background-color .12s, color .12s;
  display: flex;
  position: relative;
}

.adminSettingsNavLink:hover {
  background: color-mix(in srgb, var(--focus), white 97%);
}

.adminSettingsNavLink:focus-visible {
  box-shadow: none;
  background: color-mix(in srgb, var(--focus), white 96%);
  outline: none;
}

.adminSettingsNavLinkActive {
  background: color-mix(in srgb, var(--focus), white 94%);
}

.adminSettingsNavLinkActive:after {
  content: "";
  background: color-mix(in srgb, var(--focus), transparent 24%);
  border-radius: 999px;
  width: 4px;
  position: absolute;
  top: 6px;
  bottom: 6px;
  left: -7px;
}

.adminSettingsNavLinkLabel {
  overflow-wrap: anywhere;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.3;
}

.adminSettingsNavLinkActive .adminSettingsNavLinkLabel {
  font-weight: 700;
}

.adminOperationsNavLink {
  justify-content: space-between;
  gap: 8px;
}

.adminOperationsPendingBadge {
  background: var(--danger);
  color: #fff;
  min-width: 24px;
  min-height: 24px;
  font-family: var(--font-mono);
  border: 0;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0 6px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
}

.adminOperationsNavPendingBadge {
  flex: none;
}

.adminSettingsContent {
  min-width: 0;
  padding-left: 22px;
}

.adminSidebarCollapsedInlineRow {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  display: grid;
}

.adminSidebarCollapsedInlineToggle {
  display: none;
}

.adminSidebarCollapsedInlineContent {
  min-width: 0;
}

html[data-admin-sidebar-collapsed="1"] .adminSidebarCollapsedInlineRow {
  grid-template-columns: 30px minmax(0, 1fr);
  column-gap: 8px;
}

html[data-admin-sidebar-collapsed="1"] .adminSidebarCollapsedInlineToggle {
  justify-content: center;
  align-items: flex-start;
  padding-top: 2px;
  display: flex;
}

.adminSidebarTitleToggle {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: flex-start;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  display: flex;
  position: relative;
}

.adminSidebarTitleToggle:hover .adminSettingsSidebarTitle {
  color: color-mix(in srgb, var(--fg), var(--focus) 16%);
}

.adminSidebarTitleToggle:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 64%);
  border-radius: 8px;
  outline: none;
}

.adminSidebarTitleToggleInSidebar {
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  gap: 0 8px;
  width: 100%;
  min-height: 32px;
  display: grid;
}

.adminSidebarTitleToggleInSidebar .adminSidebarToggleGlyphBox {
  border-radius: 6px;
  width: 22px;
  height: 22px;
  margin-top: -1px;
}

.adminSidebarTitleToggleInSidebar .adminSidebarToggleGlyph {
  width: 13px;
  height: 13px;
  transform: translateY(-.5px)translateX(-.5px);
}

.adminSidebarTitleToggleInSidebar .adminSettingsSidebarTitle {
  align-self: start;
  display: block;
}

.adminSidebarTitleToggleInCollapsed {
  gap: 0;
  width: 30px;
  min-height: 30px;
}

.adminSidebarToggleGlyphBox {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 20%);
  border-radius: 9px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  display: inline-flex;
}

.adminSidebarToggleGlyph {
  width: 15px;
  height: 15px;
  stroke: color-mix(in srgb, var(--fg), var(--muted) 24%);
  stroke-width: 2.2px;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  display: block;
  transform: translateX(-.5px);
}

html[data-admin-sidebar-collapsed="1"] .adminSidebarTitleToggleInSidebar {
  display: none;
}

.adminSidebarToggleScreenReader {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

@media (max-width: 1600px) {
  :root {
    --admin-shell-gutter: 20px;
    --admin-sidebar-w: 292px;
    --admin-shell-gap: 14px;
  }
}

@media (max-width: 1280px) {
  :root {
    --admin-shell-gutter: 16px;
    --admin-sidebar-w: 272px;
    --admin-shell-gap: 12px;
  }
}

.adminSettingsPage {
  min-width: 0;
}

.adminPageHeaderPlain {
  padding: 4px 0 2px;
}

.adminSettingsPage > .card:first-child:has( > .adminHeaderBody) {
  box-shadow: none;
  background: none;
  border: 0;
}

.adminSettingsPage > .card:first-child:has( > .adminHeaderBody) > .adminHeaderBody {
  padding: 4px 0 2px;
}

.adminSettingsPageContentSplit {
  min-width: 0;
}

.adminSettingsBody {
  gap: 12px;
  display: grid;
}

.adminSettingsEditorCard {
  box-shadow: none;
}

.adminSettingsPage > .card.adminSettingsEditorCard, .adminSettingsEditorCardFlat {
  box-shadow: none;
  background: none;
  border: 0;
}

.adminSettingsEditorBody {
  gap: 12px;
  display: grid;
}

.adminSettingsPage > .card.adminSettingsEditorCard > .adminSettingsEditorBody, .adminSettingsEditorBodyFlat {
  padding: 0;
}

:is(.adminSettingsBrowsePage > .card:has( > .adminListCardBody), .adminSettingsBrowsePage > .card:has( > .adminSettingsHistoryBody), .adminSettingsBrowsePage > .card:has( > .adminSettingsSnapshotBody), .adminOperationsBrowsePage > .card:has( > .adminListCardBody)) {
  box-shadow: none;
  background: none;
  border: 0;
}

.adminSettingsCategory {
  gap: 14px;
  display: grid;
}

.adminSettingsCategory + .adminSettingsCategory {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 16%);
  padding-top: 18px;
}

.adminValidationSummary {
  gap: 6px;
  display: grid;
}

.adminFeedbackToastHost {
  z-index: 95;
  pointer-events: none;
  position: fixed;
  top: 16px;
  right: 16px;
}

.adminFeedbackToast {
  pointer-events: auto;
  border-radius: var(--radius);
  width: min(440px, 100vw - 24px);
  min-height: 54px;
  box-shadow: var(--shadow-2);
  border: 1px solid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  display: grid;
}

.adminFeedbackToastSuccess {
  border-color: color-mix(in srgb, var(--focus), transparent 40%);
  background: color-mix(in srgb, var(--focus), white 90%);
  color: color-mix(in srgb, var(--fg), black 6%);
}

.adminFeedbackToastError {
  border-color: color-mix(in srgb, var(--danger), transparent 40%);
  background: color-mix(in srgb, var(--danger), white 92%);
  color: color-mix(in srgb, var(--danger), black 12%);
}

.adminFeedbackToastIcon {
  border: 1px solid;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 24px;
  height: 24px;
  font-size: 13px;
  font-weight: 700;
  display: inline-flex;
}

.adminFeedbackToastMessage {
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
}

.adminFeedbackToastClose {
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 2px;
  justify-content: center;
  align-items: center;
  min-width: 36px;
  min-height: 36px;
  font-size: 14px;
  font-weight: 700;
  display: inline-flex;
}

.adminFeedbackToastClose:hover {
  background: color-mix(in srgb, currentColor, transparent 90%);
}

.adminFeedbackToastClose:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 28%);
  outline: none;
}

@media (max-width: 640px) {
  .adminFeedbackToastHost {
    top: 10px;
    left: 12px;
    right: 12px;
  }

  .adminFeedbackToast {
    width: 100%;
  }
}

.adminValidationTitle {
  font-weight: 700;
}

.adminValidationList {
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.adminSettingsForm {
  gap: 10px;
  display: grid;
}

.adminTemplateForm {
  gap: 12px;
}

.adminTemplateFieldsGrid {
  gap: 10px;
  display: grid;
}

.adminTemplateField {
  min-width: 0;
}

.adminTemplateBooleanField {
  gap: 4px;
}

.adminBooleanFieldRow {
  cursor: pointer;
  width: fit-content;
  max-width: 100%;
  min-height: 30px;
  color: inherit;
  background: none;
  border: 0;
  align-items: center;
  gap: 9px;
  padding: 0;
  display: inline-flex;
}

.adminBooleanFieldRow:focus-within {
  outline: none;
}

.adminBooleanFieldRow input[type="checkbox"] {
  flex: none;
  width: 20px;
  height: 20px;
  margin: 0;
}

.adminBooleanFieldLabel {
  color: color-mix(in srgb, var(--fg), black 4%);
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  font-family: var(--font-sans);
  letter-spacing: 0;
}

.adminBooleanFieldHint {
  margin-left: 29px;
}

.adminChoiceFieldGroup {
  gap: 10px;
  display: grid;
}

.adminChoiceFieldOption {
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 0;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  width: fit-content;
  max-width: 100%;
  min-height: 32px;
  padding: 0;
  display: inline-grid;
}

.adminChoiceFieldOption:focus-within {
  outline: none;
}

.adminChoiceFieldOption input[type="radio"] {
  flex: none;
  align-self: start;
  width: 20px;
  height: 20px;
  margin: 1px 0 0;
}

.adminChoiceFieldMain {
  gap: 4px;
  min-width: 0;
  display: grid;
}

.adminChoiceFieldLabel {
  color: color-mix(in srgb, var(--fg), black 4%);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.25;
}

.adminChoiceFieldHint {
  font-size: 12px;
  line-height: 1.4;
}

.adminChoiceFieldOption.isChecked .adminChoiceFieldLabel {
  font-weight: 700;
}

.adminSettingsFields {
  gap: 10px;
  display: grid;
}

.adminSettingsField {
  margin-top: 0;
}

.adminSettingsFieldHint {
  margin: 0;
  font-size: 12px;
}

.adminObraMapBlock {
  gap: 8px;
  display: grid;
}

.adminObraMapLocationLabel {
  margin: 0;
}

.adminObraMapActions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminAddressAssistBlock {
  gap: 8px;
  display: grid;
}

.adminAddressAssistRow {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  display: grid;
}

@media (max-width: 760px) {
  .adminAddressAssistRow {
    grid-template-columns: minmax(0, 1fr);
  }
}

.adminObraMapSuggestions {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 8%);
  border-radius: var(--radius);
  background: var(--bg);
  max-height: 220px;
  margin: 0;
  padding: 0;
  list-style: none;
  overflow-y: auto;
}

.adminObraMapSuggestionItem {
  text-align: left;
  width: 100%;
  color: var(--fg);
  cursor: pointer;
  background: none;
  border: 0;
  min-height: 40px;
  padding: 9px 11px;
}

.adminObraMapSuggestionItem:hover, .adminObraMapSuggestionItem:focus-visible {
  background: color-mix(in srgb, var(--bg-2), var(--fg) 4%);
  outline: none;
}

.adminObraMapCanvas {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 8%);
  border-radius: var(--radius);
  width: 100%;
  height: min(56vh, 520px);
  min-height: 420px;
  overflow: hidden;
}

.adminObraMapShell {
  position: relative;
}

.adminObraMapFullscreenBtn {
  z-index: 540;
  place-items: center;
  width: 38px;
  height: 38px;
  min-height: 38px;
  padding: 0;
  display: grid;
  position: absolute;
  top: 10px;
  right: 10px;
}

.adminObraMapFullscreenIcon {
  width: 18px;
  height: 18px;
}

.adminObraMapWheelHint {
  z-index: 530;
  color: #fff;
  text-align: center;
  text-shadow: 0 2px 12px #00000073;
  pointer-events: none;
  background: #00000094;
  justify-content: center;
  align-items: center;
  padding: 16px;
  font-size: clamp(22px, 2.3vw, 34px);
  font-weight: 900;
  line-height: 1.2;
  display: flex;
  position: absolute;
  inset: 0;
}

.adminObraMapShell:fullscreen {
  background: color-mix(in srgb, var(--fg), black 22%);
  width: 100%;
  height: 100%;
}

.adminObraMapShell:fullscreen .adminObraMapCanvas {
  border: 0;
  border-radius: 0;
  width: 100%;
  height: 100%;
  min-height: 100%;
}

.adminObraMapShell:fullscreen .adminObraMapFullscreenBtn {
  top: 12px;
  right: 12px;
}

.adminObraMapCanvas .leaflet-attribution-flag {
  display: none !important;
}

.adminObraMapError {
  color: var(--danger);
  margin: 0;
  font-size: 12px;
}

.adminObraOverviewBody {
  gap: 10px;
  display: grid;
}

.adminObraOverviewHeaderRow {
  justify-content: space-between;
  align-items: start;
  gap: 12px;
  display: flex;
}

.adminObraOverviewHeadingWrap {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminObraOverviewTitle {
  margin: 0;
}

.adminObraOverviewToggle {
  white-space: nowrap;
  flex: none;
}

.adminObraOverviewVisibleCount {
  margin: 0;
  font-size: 13px;
  line-height: 1.25;
}

.adminObraOverviewStatValue {
  font-size: 13px;
}

.adminObraOverviewMapShell {
  min-width: 0;
  position: relative;
}

.adminObraOverviewMapCanvas {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 10%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 26%);
  width: 100%;
  height: min(54vh, 500px);
  min-height: 340px;
  overflow: hidden;
}

.adminObraOverviewMapCanvas .leaflet-attribution-flag {
  display: none !important;
}

.adminObraOverviewEmpty {
  margin: 0;
  padding: 10px 0 2px;
}

.adminObraOverviewPopup {
  gap: 5px;
  min-width: min(320px, 66vw);
  display: grid;
}

.adminObraOverviewPopupTitle, .adminObraOverviewPopupAddress {
  margin: 0;
  font-size: 13px;
  line-height: 1.35;
}

.adminObraOverviewPopupAddress {
  color: var(--muted);
}

.adminObraOverviewPopupLink {
  color: var(--focus);
  text-underline-offset: 2px;
  font-size: 13px;
  font-weight: 700;
  text-decoration: underline;
}

.adminObraOverviewPopupLink:hover {
  color: color-mix(in srgb, var(--focus), black 16%);
}

@media (max-width: 760px) {
  .adminObraOverviewHeaderRow {
    flex-direction: column;
    align-items: stretch;
  }

  .adminObraOverviewToggle {
    width: 100%;
  }

  .adminObraOverviewMapCanvas {
    height: min(52vh, 420px);
    min-height: 300px;
  }
}

.adminSettingsInputWithSuffix {
  position: relative;
}

.adminSettingsInputWithSuffixControl {
  padding-right: 56px;
}

.adminSettingsInputSuffix {
  letter-spacing: .03em;
  color: var(--muted);
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
  font-size: 12px;
  font-weight: 700;
  position: absolute;
  top: 50%;
  right: 12px;
  transform: translateY(-50%);
}

.adminSettingsInlineLink {
  color: var(--focus);
  text-underline-offset: 2px;
  text-decoration: underline;
}

.adminSettingsInlineLink:hover {
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminSettingsInlineLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  border-radius: 2px;
  outline: none;
}

@media (min-width: 1080px) {
  .adminTemplateFieldsGrid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.adminSettingsTimezoneField {
  position: relative;
}

.adminRegionalSettingsForm {
  gap: 14px;
}

.adminRegionalCategory {
  gap: 10px;
}

.adminRegionalCategoryHead {
  gap: 4px;
  display: grid;
}

.adminRegionalCategoryHead .adminSettingsChecklistTitle {
  font-size: 18px;
  line-height: 1.2;
}

.adminRegionalTopGrid, .adminRegionalSingleGrid, .adminRegionalFormatsGrid {
  gap: 10px;
  display: grid;
}

.adminTimezonePickerWrap {
  position: relative;
}

.adminTimezoneTrigger {
  text-align: left;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding-right: 10px;
  display: flex;
}

.adminTimezoneTriggerChevron {
  font-size: 12px;
}

.adminTimezoneDropdown {
  z-index: 30;
  background: var(--bg);
  border: 1px solid var(--stroke);
  box-shadow: var(--shadow-2);
  border-radius: var(--radius);
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  overflow: hidden;
}

.adminTimezoneSearchWrap {
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 18%);
  background: var(--bg);
  padding: 8px;
}

.adminTimezoneSearchInput {
  min-height: 40px;
}

.adminTimezoneSuggestList {
  max-height: 260px;
  overflow: auto;
}

.adminTimezoneSuggestItem {
  border: 0 solid #0000;
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 18%);
  width: 100%;
  color: var(--fg);
  text-align: left;
  cursor: pointer;
  font-family: var(--font-mono);
  background: none;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 9px 10px;
  font-size: 14px;
  display: flex;
}

.adminTimezoneSuggestItem:first-child {
  border-top: 0;
}

.adminTimezoneSuggestItem:hover, .adminTimezoneSuggestItem:focus-visible, .adminTimezoneSuggestItem.isSelected, .adminTimezoneSuggestItem.isActive {
  background: color-mix(in srgb, var(--focus), white 92%);
}

.adminTimezoneSuggestItem:focus-visible {
  outline: none;
}

.adminCountrySuggestItem {
  font-family: inherit;
}

.adminTimezoneSelectedMark {
  color: color-mix(in srgb, var(--accent), black 20%);
  font-weight: 900;
}

.adminTimezoneSuggestEmpty {
  color: var(--muted);
  padding: 10px;
  font-size: 13px;
}

.listboxRoot {
  width: 100%;
  min-width: 0;
  position: relative;
}

.listboxTrigger {
  text-align: left;
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-width: 0;
  padding-right: 10px;
  display: flex;
}

.listboxTriggerDisabled {
  cursor: not-allowed;
}

.listboxChevron {
  font-size: 12px;
}

.listboxMenu {
  z-index: 30;
  background: var(--bg);
  border: 1px solid var(--stroke);
  box-shadow: var(--shadow-2);
  border-radius: 2px;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  overflow: auto;
}

.listboxSearch {
  z-index: 1;
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg), white 75%);
  padding: 8px;
  position: sticky;
  top: 0;
}

.listboxSearchInput {
  min-height: 40px;
  padding: 10px 12px;
}

.listboxEmpty {
  color: var(--muted);
  padding: 12px 14px 14px;
  font-size: 14px;
}

.listboxOption {
  text-align: left;
  width: 100%;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  padding: 10px;
  font-size: 14px;
}

.listboxOptionActive {
  background: color-mix(in srgb, var(--focus), white 92%);
}

.listboxOptionMono {
  font-family: var(--font-mono);
}

.listboxOptionSans {
  font-family: var(--font-sans);
}

.listboxOptionRow {
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.listboxOptionCheck {
  color: color-mix(in srgb, var(--accent), black 20%);
  font-weight: 900;
}

.listboxOptionLabelWrap {
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: inline-flex;
}

.listboxOptionIcon {
  width: 16px;
  height: 11px;
}

.adminCompanyIdentityTopGrid {
  grid-template-columns: minmax(0, 1fr);
  gap: 12px;
  display: grid;
}

.adminCompanyLogoPanel {
  align-content: start;
  gap: 10px;
  display: grid;
}

.adminCompanyLogoPreview {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 20%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--fg) 5%);
  width: 100%;
  padding: 8px;
}

.adminCompanyLogoCanvas {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 8%);
  border-radius: calc(var(--radius)  - 1px);
  background: #fff;
  place-items: center;
  min-height: 180px;
  display: grid;
  overflow: hidden;
}

.adminCompanyLogoCanvas img {
  object-fit: contain;
  max-width: 100%;
  max-height: 100%;
}

.adminCompanyLogoPlaceholder {
  color: var(--muted);
  font-size: 12px;
}

.adminCompanyLogoActions {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.adminCompanyLogoActions .btn {
  justify-content: center;
  min-width: 0;
  min-height: 42px;
  padding-left: 14px;
  padding-right: 14px;
}

.adminCompanyLogoInput {
  display: none;
}

.adminCompanyLogoError {
  color: color-mix(in srgb, var(--danger), black 8%);
  margin: 0;
  font-size: 12px;
}

.adminVehiclePhotoField {
  gap: 8px;
}

.adminVehiclePhotoPanel {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  place-items: center;
  width: min(100%, 420px);
  min-height: 108px;
  display: grid;
  overflow: hidden;
}

.adminVehiclePhotoPreview {
  object-fit: contain;
  background: #fff;
  width: 100%;
  max-height: 220px;
  display: block;
}

.adminVehiclePhotoPlaceholder {
  color: var(--muted);
  font-size: 12px;
}

.adminVehiclePhotoActions {
  width: fit-content;
}

@media (min-width: 1080px) {
  .adminCompanyIdentityTopGrid {
    grid-template-columns: minmax(0, 1fr) 320px;
    align-items: start;
  }

  .adminCompanyLogoPanel {
    width: 100%;
  }

  .adminCompanyLogoActions {
    grid-template-columns: 1fr 1fr;
    display: grid;
  }
}

.adminSettingsTextarea {
  resize: vertical;
  min-height: 120px;
}

.adminSettingsTextareaCompact {
  min-height: 96px;
}

.adminSettingsIntro {
  margin: 0;
}

.adminSettingsFormFooter {
  gap: 10px;
  margin-top: 6px;
  display: grid;
}

.adminSettingsFormActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px;
  display: flex;
}

.adminSettingsPendingPill {
  min-height: 36px;
  margin-right: auto;
}

.adminSettingsFormMeta {
  text-align: right;
  margin: 0;
  font-size: 12px;
}

.adminSettingsChecklistTitle {
  margin: 0;
  font-size: 20px;
}

.adminSettingsChecklist {
  gap: 6px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.adminCompanyCalendarPickerGrid {
  grid-template-columns: 1fr 1fr;
  align-items: end;
  gap: 10px;
  display: grid;
}

.adminCompanyCalendarGrid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
  display: grid;
}

.adminCompanyCalendarWeekday {
  text-align: center;
  letter-spacing: .08em;
  font-size: 12px;
}

.adminCompanyCalendarWeekendSwatch {
  background: color-mix(in srgb, var(--bg), var(--fg) 2%);
  border: 1px solid var(--stroke);
}

.adminCompanyCalendarDayButton {
  cursor: pointer;
  transition: box-shadow .12s, border-color .12s;
  position: relative;
}

.adminCompanyCalendarDayButton .timesheetCellHint {
  max-width: min(75%, 12ch);
}

.adminCompanyCalendarDayButton .timesheetCellHintFull {
  white-space: normal;
  overflow-wrap: anywhere;
  display: block;
}

.adminCompanyCalendarDayButton .timesheetCellHeader {
  overflow: visible;
}

.adminCompanyCalendarDayButton .timesheetCellDayNum {
  width: max-content;
}

.adminCompanyCalendarDayButton .timesheetCellDayNumToday {
  z-index: 0;
  color: #fff;
  font-weight: 700;
  position: relative;
}

.adminCompanyCalendarDayButton .timesheetCellDayNumToday:before {
  content: "";
  background: var(--focus);
  z-index: -1;
  pointer-events: none;
  border-radius: 999px;
  width: 24px;
  height: 24px;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.adminCompanyCalendarDayButton:disabled {
  cursor: default;
}

.adminCompanyCalendarDayButton:hover:not(:disabled) {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 42%);
}

.adminCompanyCalendarDayButton:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 18%);
  outline-offset: 1px;
}

.adminCompanyCalendarPanelBody {
  gap: 12px;
  display: grid;
}

.adminCompanyCalendarPanel {
  box-shadow: none;
  background: var(--bg-2);
}

.adminCompanyCalendarPanelTopRow {
  gap: 10px;
  display: grid;
}

.adminCompanyCalendarPanelTopRowOpen {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
}

.adminCompanyCalendarPanelHeader {
  gap: 2px;
  display: grid;
}

.adminCompanyCalendarPanelDate {
  font-size: 18px;
}

.adminCompanyCalendarHint {
  font-size: 13px;
}

.adminCompanyCalendarPanelTopActions {
  width: 100%;
}

.adminCompanyCalendarActionLane {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  width: 100%;
  display: flex;
}

.adminCompanyCalendarSelectedInput {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  width: 176px;
  min-height: 36px;
  color: var(--fg);
  background: #fff;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding: 0 11px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  display: inline-flex;
}

.adminCompanyCalendarSelectedInput .mono {
  margin-left: auto;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
}

.adminCompanyCalendarSelectedLabel {
  white-space: nowrap;
}

.adminCompanyCalendarCloseBtn {
  white-space: nowrap;
  width: 176px !important;
  min-width: 176px !important;
  min-height: 36px !important;
  padding: 0 11px !important;
  font-size: 14px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
}

.adminCompanyCalendarEditorGrid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: start;
  gap: 10px;
  display: grid;
}

.adminCompanyCalendarToggleField {
  gap: 2px;
  margin: 0;
  display: grid;
}

.adminCompanyCalendarToggleField .adminBooleanFieldRow {
  align-items: center;
  min-height: 44px;
}

.adminCompanyCalendarToggleField .adminBooleanFieldHint {
  margin-left: 0;
}

.adminCompanyCalendarFieldHint {
  margin: 1px 2px 0;
  font-size: 13px;
  line-height: 1.35;
}

.adminCompanyCalendarBulkBody {
  gap: 12px;
  display: grid;
}

.adminCompanyCalendarBulkActions {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px;
  display: flex;
}

.adminCompanyCalendarBulkActions .btn, .adminCompanyCalendarPanelTopActions .btn {
  width: auto;
  min-width: 0;
}

.adminCompanyCalendarCompactBtn {
  min-height: 36px !important;
  padding: 7px 12px !important;
  font-size: 14px !important;
}

.adminCompanyCalendarInfoPill {
  background: var(--bg-2);
  border: 1px solid var(--stroke);
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 10px;
  min-height: 44px;
  padding: 10px 12px;
  display: grid;
}

.adminCompanyCalendarInfoIcon {
  width: 18px;
  height: 18px;
  color: var(--muted);
  place-items: center;
  font-size: 14px;
  line-height: 1;
  display: inline-grid;
}

.adminCompanyCalendarInfoText {
  color: var(--muted);
  font-size: 14px;
  line-height: 1.35;
}

.adminSettingsHistoryBody {
  gap: 10px;
  min-width: 0;
  display: grid;
}

.adminSettingsHistorySurface {
  min-width: 0;
}

.adminSettingsHistoryList {
  gap: 10px;
  min-width: 0;
  display: grid;
}

.adminSettingsHistoryItem {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  gap: 8px;
  min-width: 0;
  padding: 10px;
  display: grid;
  overflow-x: hidden;
}

.adminSettingsHistoryItemHeader {
  gap: 6px;
  min-width: 0;
  display: grid;
}

.adminSettingsHistoryItemMeta {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.adminSettingsHistoryItemMeta > span {
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.adminSettingsHistoryValueLabel {
  margin-bottom: 4px;
  font-size: 12px;
}

.adminSettingsHistoryValue {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: break-all;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 10px;
  font-size: 12px;
  line-height: 1.4;
  overflow: auto;
}

.adminSettingsSnapshotGrid {
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 12px;
  display: grid;
}

.adminSettingsSnapshotBody {
  gap: 10px;
  display: grid;
}

.adminSettingsSnapshotActions {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 10px;
  display: flex;
}

.adminSettingsSnapshotTextarea {
  min-height: 320px;
  font-size: 12px;
  line-height: 1.4;
}

.adminListCardBody {
  gap: 10px;
  display: grid;
}

.adminRolesCardBody {
  gap: 12px;
}

.adminRolesHowToCard {
  gap: 10px;
}

.adminRolesHowToList {
  color: var(--muted);
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.adminRolesHowToActions {
  justify-content: flex-start;
  display: flex;
}

.adminRolesTemplateListCardBody {
  gap: 10px;
  display: grid;
}

.adminRolesTemplateListTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminRolesTemplateListActions {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

.adminRolesTemplateList {
  gap: 8px;
  display: grid;
}

.adminRolesTemplateItem {
  text-align: left;
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 24%);
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  display: flex;
}

.adminRolesTemplateItem.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 44%);
  background: color-mix(in srgb, var(--focus), white 95%);
}

.adminRolesTemplateItemMain {
  gap: 2px;
  display: grid;
}

.adminRolesTemplateItemName {
  font-weight: 700;
}

.adminRolesSubnavBody {
  flex-wrap: wrap;
  gap: 10px;
  display: flex;
}

.adminRolesCatalogCardBody {
  gap: 10px;
}

.adminRolesCatalogHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.adminRolesCatalogList {
  gap: 8px;
  display: grid;
}

.adminRolesCatalogItem {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 24%);
  gap: 2px;
  padding: 10px;
  display: grid;
}

.adminRolesCatalogItemTitle {
  margin: 0;
  font-weight: 700;
}

.adminRolesCatalogItemKey, .adminRolesCatalogItemDesc {
  margin: 0;
}

.adminAccessCheckGrid {
  gap: 8px;
  display: grid;
}

.adminAccessCheckItem {
  align-items: center;
  gap: 8px;
  min-height: 32px;
  display: flex;
}

.adminAccessPillWrap {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.adminAccessActions {
  justify-content: flex-start;
  display: flex;
}

.adminRoleFooterActions {
  flex-wrap: wrap;
  gap: 8px;
}

.adminAppearanceColorGrid {
  gap: 12px;
  display: grid;
}

.adminAppearanceColorItem {
  gap: 6px;
  display: grid;
}

.adminAppearanceColorControl {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminAppearanceColorSwatch {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 14%);
  border-radius: 4px;
  flex: none;
  width: 28px;
  height: 28px;
}

.adminAppearanceColorHex {
  letter-spacing: .03em;
  width: 130px;
  min-height: 36px;
  padding: 8px 10px;
}

.adminAppearanceColorSelectBtn, .adminAppearanceColorClearBtn {
  min-height: 36px;
  padding: 7px 12px;
  font-size: 14px;
  font-weight: 600;
}

.adminAppearanceColorClearBtn {
  border-color: color-mix(in srgb, var(--stroke), var(--fg) 12%);
  background: color-mix(in srgb, var(--bg), var(--bg-2) 32%);
  min-height: 32px;
  padding: 6px 10px;
  font-size: 12px;
}

.adminAppearanceColorClearBtn:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--stroke), var(--fg) 20%);
  background: color-mix(in srgb, var(--bg), var(--fg) 6%);
}

.adminAppearanceColorPickerInput {
  opacity: 0;
  pointer-events: none;
  width: 1px;
  height: 1px;
  position: absolute;
}

@media (max-width: 880px) {
  .adminAppearanceColorHex {
    flex: 220px;
    width: 100%;
    min-width: 0;
  }
}

.adminRoleMatrixToolbar {
  gap: 8px;
  display: grid;
}

.adminRoleTemplateMetaGrid {
  gap: 10px;
  display: grid;
}

.adminRoleFieldError {
  color: var(--danger);
}

.adminRoleSelectionSummary {
  margin-top: 2px;
}

.adminRoleMatrix {
  gap: 10px;
  display: grid;
}

.adminRoleGroup {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 24%);
  gap: 8px;
  padding: 10px;
  display: grid;
}

.adminRoleGroupHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminRoleGroupTitle {
  align-items: center;
  gap: 8px;
  font-weight: 700;
  display: inline-flex;
}

.adminRoleGroupActions {
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

.adminRoleActionBtn {
  border-radius: 6px;
  min-height: 32px;
  padding: 0 10px;
  font-size: 12px;
}

.adminRoleCapabilityItem {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg);
  align-items: flex-start;
  gap: 8px;
  min-height: 40px;
  padding: 8px;
  display: flex;
}

.adminRoleCapabilityMain {
  gap: 2px;
  display: grid;
}

.adminRoleCapabilityMain > span:first-child {
  font-weight: 600;
}

.adminSessionsBody {
  gap: 10px;
  display: grid;
}

.adminSessionsToolbarBody {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
  align-items: end;
  gap: 10px;
  padding-bottom: 8px;
  display: grid;
}

.adminSessionsSortWrap {
  margin-top: 0;
}

.adminSessionsToolbarMetaBody {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding-top: 0;
  display: flex;
}

.adminSessionsActiveOnly {
  align-items: center;
  display: inline-flex;
}

.adminSessionsActiveOnly .adminBooleanFieldRow {
  min-height: 34px;
  padding: 4px 2px;
}

.adminSessionsToolbarMetaActions {
  align-items: center;
  gap: 10px;
  display: inline-flex;
}

.adminSessionsResultCount {
  margin: 0;
}

.adminSessionsStatusPill {
  min-height: 26px;
}

.adminSessionsBody .adminListTableWrap {
  overflow-x: auto;
}

.adminSessionsBody .adminListTable {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.adminSessionsBody .adminListTable thead th {
  text-align: left;
  border-bottom: 1px solid var(--stroke);
  color: color-mix(in srgb, var(--fg), black 8%);
  padding: 12px;
  font-size: 14px;
  font-weight: 700;
}

.adminSessionsBody .adminListTable tbody td {
  border-bottom: 1px solid var(--stroke);
  vertical-align: middle;
  padding: 14px 12px;
  font-size: 14px;
  line-height: 1.3;
}

.adminSessionsBody .adminListTable tbody tr:hover {
  background: color-mix(in srgb, var(--focus), white 97%);
}

.adminSessionsUserCell {
  min-width: 150px;
}

.adminSessionsUserCellInner {
  gap: 2px;
  display: grid;
}

.adminSessionsUserPrimary {
  font-size: 14px;
  font-weight: 700;
}

.adminSessionsUserSecondary {
  color: var(--muted);
  font-size: 12px;
}

.adminSessionsMono {
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 140px;
  font-size: 12px;
  overflow: hidden;
}

.adminSessionsIp {
  color: var(--muted);
  white-space: nowrap;
  font-size: 12px;
}

.adminSessionsUserAgent {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 120px;
  color: var(--muted);
  font-size: 12px;
  overflow: hidden;
}

.adminSessionsActionCell {
  text-align: right;
  width: 90px;
}

.adminSessionsDateMeta {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  min-width: 126px;
  font-size: 12px;
  line-height: 1.25;
}

.adminSessionsRevokeBtn {
  border-radius: 9px;
  min-height: 34px;
  padding: 0 10px;
  font-size: 13px;
}

.adminDirectoryVisibleCount {
  margin: 0;
  font-size: 14px;
  line-height: 1.25;
}

.adminDirectoryListMeta {
  justify-content: flex-end;
  margin-top: 6px;
  padding-right: 10px;
  display: flex;
}

.adminListCardBody .adminListTableWrap, .adminListTableSurface .adminListTableWrap {
  overflow: auto hidden;
}

.adminListCardBody .adminListTable, .adminListTableSurface .adminListTable {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.adminListCardBody .adminListTable thead th, .adminListTableSurface .adminListTable thead th {
  text-align: left;
  letter-spacing: .01em;
  border-bottom: 1px solid var(--stroke);
  color: color-mix(in srgb, var(--fg), black 8%);
  padding: 12px;
  font-size: 16px;
  font-weight: 700;
}

.adminListSelectHeader, .adminListSelectCell {
  text-align: center;
  width: 44px;
  padding-left: 8px !important;
  padding-right: 8px !important;
}

.adminListSelectHeader .adminBulkCheckbox, .adminListSelectCell .adminBulkCheckbox {
  justify-content: center;
  margin-right: 0;
}

.adminListCardBody .adminListTable tbody td, .adminListTableSurface .adminListTable tbody td {
  border-bottom: 1px solid var(--stroke);
  vertical-align: middle;
  padding: 14px 12px;
  font-size: 14px;
  line-height: 1.3;
}

.adminObraAddressCell {
  white-space: nowrap;
  text-overflow: ellipsis;
  max-width: 360px;
  overflow: hidden;
}

.adminListCardBody .adminListTable td:nth-last-child(2) {
  font-size: 13px;
  line-height: 1.25;
}

.adminListDateCell {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  min-width: 112px;
}

.adminListDateTimeCell {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  min-width: 154px;
}

.adminListCardBody .adminListRow, .adminListTableSurface .adminListRow {
  transition: background-color .14s;
}

.adminListCardBody .adminListRow:hover, .adminListTableSurface .adminListRow:hover {
  background: color-mix(in srgb, var(--focus), white 96%);
}

.adminListCardBody .adminListRow:focus-visible, .adminListTableSurface .adminListRow:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 32%);
  outline-offset: -2px;
}

.adminFinanceInboxPage, .adminFinanceIntakeBody {
  gap: 14px;
  display: grid;
}

.adminFinanceIntakeBodyFlat {
  padding: 0;
}

.adminFinanceModePicker {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceModeButton {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, white, var(--bg) 6%);
  min-height: 92px;
  color: inherit;
  text-align: left;
  cursor: pointer;
  gap: 5px;
  padding: 14px 16px;
  transition: border-color .14s, background-color .14s, transform .14s, box-shadow .14s;
  display: grid;
}

.adminFinanceModeButton:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 48%);
  background: color-mix(in srgb, var(--focus), white 97%);
  transform: translateY(-1px);
}

.adminFinanceModeButton:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 24%);
  outline-offset: 2px;
}

.adminFinanceModeButtonActive {
  border-color: color-mix(in srgb, var(--focus), transparent 8%);
  background: color-mix(in srgb, var(--focus), white 95%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 28%), 0 8px 18px #28489212;
}

.adminFinanceModeButtonTitle {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
}

.adminFinanceModeButtonHint {
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.35;
}

.adminFinanceIntakeGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  display: grid;
}

.adminFinancePanel {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 4%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, white, var(--bg) 8%);
  padding: 18px;
}

.adminFinancePanelRefresh {
  gap: 16px;
}

.adminFinancePanelHead {
  gap: 4px;
  display: grid;
}

.adminFinancePanelTitle {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.15;
}

.adminFinancePanelActions {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceUploadStack {
  gap: 12px;
  display: grid;
}

.adminFinanceHiddenFileInput {
  display: none;
}

.adminFinanceDropzone {
  border: 1px dashed color-mix(in srgb, var(--focus), transparent 36%);
  border-radius: calc(var(--radius)  + 4px);
  background: linear-gradient(180deg, color-mix(in srgb, var(--focus), white 98%), color-mix(in srgb, white, var(--bg) 8%));
  cursor: pointer;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
  min-height: 148px;
  padding: 18px;
  transition: border-color .14s, background-color .14s, box-shadow .14s, transform .14s;
  display: grid;
}

.adminFinanceDropzone:hover, .adminFinanceDropzone.isDragging {
  border-color: color-mix(in srgb, var(--focus), transparent 14%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--focus), white 95%), color-mix(in srgb, white, var(--bg) 4%));
  transform: translateY(-1px);
  box-shadow: 0 10px 24px #28489214;
}

.adminFinanceDropzone:focus-visible {
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--focus), transparent 72%), 0 10px 24px #28489214;
  outline: none;
}

.adminFinanceDropzoneIcon {
  background: color-mix(in srgb, var(--focus), white 87%);
  width: 48px;
  height: 48px;
  color: color-mix(in srgb, var(--focus), black 12%);
  font-family: var(--font-mono);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  font-size: 32px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
}

.adminFinanceDropzoneText {
  gap: 5px;
  min-width: 0;
  display: grid;
}

.adminFinanceDropzoneFormats {
  font-family: var(--font-mono);
  letter-spacing: .02em;
  font-size: 12px;
}

.adminFinanceUploadQueue {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, white, var(--bg) 10%);
  gap: 10px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceUploadQueueHead {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.adminFinanceUploadQueueList {
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
}

.adminFinanceUploadQueueItem {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: var(--radius);
  background: color-mix(in srgb, white, var(--bg) 6%);
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  display: flex;
  position: relative;
}

.adminFinanceUploadQueueMeta {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminFinanceUploadQueueMeta strong {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.adminFinanceUploadQueueClearBtn {
  min-width: auto;
  padding-inline: 14px;
}

.adminFinanceUploadQueueRemoveBtn {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  width: 20px;
  height: 20px;
  color: var(--text);
  background: #fff;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0;
  font-size: 14px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
  position: absolute;
  top: 10px;
  right: 10px;
}

.adminFinanceUploadQueueRemoveBtn:hover, .adminFinanceUploadQueueRemoveBtn:focus-visible {
  border-color: color-mix(in srgb, var(--focus), transparent 48%);
  background: color-mix(in srgb, var(--bg-2), white 30%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 82%);
}

.adminFinanceUploadQueueEmpty {
  margin: 0;
  padding: 0 2px;
}

.adminFinanceUploadMetaGrid, .adminFinanceUploadOptionalGrid {
  gap: 12px;
  display: grid;
}

.adminFinanceUploadFooter {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: end;
  gap: 24px;
  display: flex;
}

.adminFinanceUploadBackendField {
  flex: 560px;
  min-width: 0;
}

.adminFinanceUploadActions {
  flex: none;
  justify-content: flex-end;
  align-self: end;
}

.adminFinanceUploadSubmitRow {
  justify-content: flex-end;
  margin-top: 16px;
}

.adminFinanceUploadOptionalDetails {
  padding-top: 2px;
}

.adminFinanceUploadOptionalDetails[open] .adminFinanceUploadOptionalGrid {
  margin-top: 10px;
}

.adminFinanceTextarea {
  min-height: 96px;
}

.adminFinanceTextareaMono {
  font-family: var(--font-mono);
  font-size: 12px;
}

.adminFinanceInboxResultsBody {
  gap: 12px;
}

.adminFinanceInboxPager {
  overflow-anchor: none;
  padding-top: 8px;
}

.adminFinanceInboxResultsHead {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminFinanceInboxHeaderActions {
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceInboxRefreshBtn {
  width: 42px;
  min-width: 42px;
  height: 42px;
  color: var(--text);
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 10px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.adminFinanceInboxRefreshBtn:hover:not(:disabled) {
  background: color-mix(in srgb, var(--text), transparent 94%);
}

.adminFinanceInboxRefreshBtn:focus-visible {
  outline: 2px solid var(--focus);
  outline-offset: 2px;
}

.adminFinanceInboxRefreshBtn:disabled {
  cursor: default;
  opacity: .72;
}

.adminFinanceInboxTableActionHead {
  text-align: right;
}

.adminFinanceInboxTableActionHeadInner {
  justify-content: flex-end;
  width: 100%;
  display: flex;
}

.adminFinanceInboxRefreshIcon {
  object-fit: contain;
  width: 18px;
  height: 18px;
  display: block;
}

.adminFinanceInboxRefreshIconSpinning {
  animation: .9s linear infinite adminFinanceInboxRefreshSpin;
}

@keyframes adminFinanceInboxRefreshSpin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.adminFinanceInboxLauncher {
  gap: 12px;
  display: grid;
}

.adminFinanceInboxLauncherActions {
  justify-content: flex-start;
}

.adminFinanceLauncherActionActive {
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 8%);
}

.adminFinanceIntakePanel {
  gap: 12px;
  display: grid;
}

.adminFinancePanelFull {
  grid-column: 1 / -1;
}

.adminFinanceNotice {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  margin: 0;
  padding: 10px 12px;
}

.adminFinanceNoticeSuccess {
  border-color: color-mix(in srgb, var(--success), transparent 34%);
  background: color-mix(in srgb, var(--success), white 92%);
}

.adminFinanceNoticeError {
  border-color: color-mix(in srgb, var(--danger), transparent 34%);
  background: color-mix(in srgb, var(--danger), white 94%);
}

.adminFinanceInboxTable {
  min-width: 1160px;
}

.adminFinanceInboxTable th:first-child, .adminFinanceInboxTable td:first-child {
  min-width: 164px;
}

.adminFinanceInboxTable th:nth-child(2), .adminFinanceInboxTable td:nth-child(2) {
  min-width: 280px;
}

.adminFinanceInboxTable th:nth-child(3), .adminFinanceInboxTable td:nth-child(3) {
  min-width: 210px;
}

.adminFinanceInboxTable th:nth-child(4), .adminFinanceInboxTable td:nth-child(4) {
  min-width: 136px;
}

.adminFinanceInboxTable th:nth-child(5), .adminFinanceInboxTable td:nth-child(5) {
  min-width: 96px;
}

.adminFinanceInboxTable th:nth-child(6), .adminFinanceInboxTable td:nth-child(6) {
  min-width: 176px;
}

.adminFinanceInboxTable th:last-child, .adminFinanceInboxTable td:last-child {
  width: 1%;
}

.adminFinanceInfoCell {
  min-width: 280px;
  max-width: 0;
}

.adminFinanceInfoCell strong, .adminFinanceInfoCell .muted {
  overflow-wrap: anywhere;
}

.adminFinanceInboxDateCell strong, .adminFinanceInboxDateCell .muted {
  white-space: nowrap;
}

.adminFinanceStack {
  gap: 2px;
  display: grid;
}

.adminFinanceInboxStatusCell .adminFinanceStack, .adminFinanceInboxTypeCell .adminFinanceStack {
  gap: 6px;
}

.adminFinanceInboxTypePills {
  white-space: nowrap;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  display: flex;
}

.adminFinanceInboxDocumentLine {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px;
  display: inline-flex;
}

.adminFinanceInboxDocumentLink {
  color: var(--text);
  text-underline-offset: .14em;
  text-decoration: underline;
  text-decoration-thickness: 1px;
}

.adminFinanceInboxDocumentLink:hover {
  color: var(--focus);
}

.adminFinanceInboxSupplierCell strong, .adminFinanceInboxTotalCell strong {
  display: block;
}

.adminFinanceInboxTotalCell strong {
  white-space: nowrap;
}

.adminFinanceProcessingPill {
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

.adminFinanceProcessingDot {
  border: 2px solid color-mix(in srgb, var(--focus), white 45%);
  border-right-color: #0000;
  border-radius: 999px;
  flex: none;
  width: 10px;
  height: 10px;
  animation: .9s linear infinite adminFinanceProcessingSpin;
}

.adminFinanceParserPillLocal {
  border-color: color-mix(in srgb, var(--ok), transparent 46%);
  color: color-mix(in srgb, var(--ok), black 28%);
  background: color-mix(in srgb, var(--ok), white 95%);
}

.adminFinanceParserPillAi {
  border-color: color-mix(in srgb, var(--ok), transparent 52%);
  color: color-mix(in srgb, var(--ok), black 12%);
  background: color-mix(in srgb, var(--ok), white 93%);
}

@keyframes adminFinanceProcessingSpin {
  from {
    transform: rotate(0);
  }

  to {
    transform: rotate(360deg);
  }
}

.adminFinanceRowActions {
  flex-wrap: nowrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  display: flex;
}

.adminFinanceRowActions .btn {
  white-space: nowrap;
}

.adminFinanceRowPrimaryAction {
  min-width: 72px;
  padding-inline: 12px;
}

.adminFinanceActionsCell {
  text-align: right;
  min-width: 124px;
}

.adminFinanceActionsCell:has(.adminFinanceRowActions .adminFinanceRowPrimaryAction:only-child) {
  min-width: 92px;
}

.adminFinanceReviewPage, .adminFinanceReviewExperience {
  gap: 16px;
  min-width: 0;
  display: grid;
}

.adminFinanceReviewHead {
  z-index: 6;
  gap: 0;
  display: grid;
  position: sticky;
  top: 12px;
}

.adminFinanceReviewTitleRow {
  align-items: flex-start;
  padding-inline: 0;
}

.adminFinanceReviewTitleActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.adminFinanceReviewPageHead {
  align-items: flex-start;
}

.adminFinanceReviewSummaryBar {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceReviewSummaryCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, white, var(--bg) 6%);
  gap: 4px;
  min-width: 0;
  min-height: 92px;
  padding: 14px 16px;
  transition: border-color .14s, background-color .14s, box-shadow .14s;
  display: grid;
}

.adminFinanceReviewSummaryCard.isPrimary {
  border-color: color-mix(in srgb, var(--focus), transparent 12%);
  background: color-mix(in srgb, var(--focus), white 95%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 28%), 0 8px 18px #2848920d;
}

.adminFinanceReviewSummaryCard.isPrimary:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 4%);
  background: color-mix(in srgb, var(--focus), white 93%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 18%), 0 10px 22px #28489214;
}

.adminFinanceReviewSummaryCard.isNeutralStrong {
  border-color: color-mix(in srgb, var(--fg), transparent 18%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--stroke), transparent 22%);
  background: #fff;
}

.adminFinanceReviewSummaryCard.isWarning {
  border-color: color-mix(in srgb, var(--warning), transparent 42%);
  background: color-mix(in srgb, var(--warning), white 94%);
}

.adminFinanceReviewSummaryCard.isDanger {
  border-color: color-mix(in srgb, var(--danger), transparent 42%);
  background: color-mix(in srgb, var(--danger), white 95%);
}

.adminFinanceReviewSummaryCard.isSuccess {
  border-color: color-mix(in srgb, var(--success), transparent 44%);
  background: color-mix(in srgb, var(--success), white 94%);
}

.adminFinanceReviewAmountBreakdown {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 6px;
  display: grid;
}

.adminFinanceReviewAmountBreakdownItem {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 18%);
  gap: 3px;
  min-width: 0;
  padding-top: 8px;
  display: grid;
}

.adminFinanceReviewAmountBreakdownItem strong {
  font-size: 15px;
  line-height: 1.25;
}

.adminFinanceReviewAmountBreakdownItem.isDanger strong, .adminFinanceReviewSummaryValueDanger {
  color: color-mix(in srgb, var(--danger), var(--fg) 18%);
}

.adminFinanceReviewSummaryActionLink {
  color: var(--focus);
  align-self: flex-start;
  margin-top: 2px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}

.adminFinanceReviewSummaryActionLink:hover {
  color: color-mix(in srgb, var(--focus), black 12%);
  text-decoration: underline;
}

.adminFinanceReviewSummaryActionLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  border-radius: 2px;
  outline: none;
}

.adminFinanceReviewHeadActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceReviewTitleButton {
  min-height: 48px;
  padding-inline: 18px;
}

.adminFinanceReviewTitleUtilityButton {
  border-color: color-mix(in srgb, var(--stroke), transparent 12%);
  background: color-mix(in srgb, white, var(--bg) 12%);
  color: color-mix(in srgb, var(--muted), var(--fg) 22%);
}

.adminFinanceReviewTitleUtilityButton:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 54%);
  background: color-mix(in srgb, var(--focus), white 97%);
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminFinanceReviewTitleUtilityButton.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 38%);
  background: color-mix(in srgb, var(--focus), white 94%);
  color: color-mix(in srgb, var(--focus), black 14%);
}

.adminFinanceReviewDecisionMenuTrigger.adminFinanceReviewTitleButton {
  min-width: 0;
}

.adminFinanceReviewStructureRule {
  align-items: start;
  min-width: 0;
  margin-bottom: -16px;
  display: grid;
}

.adminFinanceReviewStructureRule.isEvidenceCollapsed {
  grid-template-columns: minmax(0, 1fr);
}

.adminFinanceReviewStructureRule.isEvidenceOpen {
  grid-template-columns: minmax(0, var(--admin-finance-evidence-width, 540px)) 14px minmax(0, 1fr);
}

.adminFinanceReviewStructureRuleSegment {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 4%);
  min-width: 0;
}

.adminFinanceReviewStructureRuleSplitter {
  width: 14px;
  min-height: 18px;
  position: relative;
}

.adminFinanceReviewStructureRuleSplitter:before {
  content: "";
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 4%);
  position: absolute;
  inset: 0;
}

.adminFinanceReviewStructureRuleSplitter:after {
  display: none;
}

.adminFinanceReviewDecisionMenu {
  position: relative;
}

.adminFinanceReviewDecisionMenuTrigger {
  min-width: 176px;
}

.adminFinanceReviewDecisionMenuPanel {
  z-index: 8;
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), white 12%);
  gap: 6px;
  min-width: 240px;
  padding: 8px;
  display: grid;
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  box-shadow: 0 12px 32px #1a160f14;
}

.adminFinanceReviewDecisionOption {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg), white 24%);
  width: 100%;
  min-height: 42px;
  color: var(--text);
  font: inherit;
  text-align: left;
  cursor: pointer;
  padding: 0 12px;
  font-weight: 600;
  transition: border-color .12s, background-color .12s, color .12s;
}

.adminFinanceReviewDecisionOption:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 56%);
  background: color-mix(in srgb, var(--focus), white 96%);
}

.adminFinanceReviewDecisionOption:disabled {
  cursor: not-allowed;
  opacity: .55;
}

.adminFinanceReviewDecisionHint {
  margin: 2px 2px 0;
  font-size: 13px;
  line-height: 1.35;
}

.adminFinanceReviewWorkspace {
  grid-template-columns: minmax(0, 1fr);
  align-items: start;
  gap: 16px;
  min-width: 0;
  display: grid;
  position: relative;
}

.adminFinanceReviewWorkspace.isEvidenceCollapsed {
  grid-template-columns: minmax(0, 1fr);
}

.adminFinanceReviewWorkspace.isEvidenceOpen {
  grid-template-columns: minmax(0, var(--admin-finance-evidence-width, 540px)) 14px minmax(0, 1fr);
}

.adminFinanceReviewWorkspace.isEvidenceResizing {
  cursor: col-resize;
}

.adminFinanceReviewEvidenceRail {
  align-self: start;
  min-width: 0;
  display: grid;
  position: sticky;
  top: 184px;
}

.adminFinanceReviewWorkspaceCard {
  min-width: 0;
}

.adminFinanceReviewWorkspaceCard.isEvidenceCollapsed {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: #fff;
  padding: 18px 18px 14px;
}

.adminFinanceReviewEvidenceBody {
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex-direction: column;
  gap: 12px;
  height: calc(100vh - 228px);
  min-height: 0;
  display: flex;
  overflow: hidden;
}

.adminFinanceReviewEvidenceBody::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.adminFinanceReviewWorkspaceBody {
  gap: 12px;
  max-height: calc(100vh - 228px);
  padding: 0;
  display: grid;
  overflow: auto;
}

.adminFinanceReviewWorkspaceBody.isEvidenceCollapsed {
  gap: 16px;
}

.adminFinanceReviewRailHead {
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  display: flex;
}

.adminFinanceReviewEvidenceFilename {
  overflow-wrap: anywhere;
  min-width: 0;
  font-size: 18px;
  line-height: 1.3;
  display: block;
}

.adminFinanceReviewWorkspaceSplitter {
  cursor: col-resize;
  touch-action: none;
  justify-content: center;
  align-items: stretch;
  width: 14px;
  min-height: calc(100vh - 228px);
  display: flex;
  position: sticky;
  top: 184px;
}

.adminFinanceReviewWorkspaceSplitter:before {
  content: "";
  background: color-mix(in srgb, var(--stroke), transparent 4%);
  width: 1px;
}

.adminFinanceReviewWorkspaceSplitter:after {
  content: "";
  background: color-mix(in srgb, var(--stroke), transparent 4%);
  width: 1px;
  height: 16px;
  position: absolute;
  top: -16px;
  left: 50%;
  transform: translateX(-50%);
}

.adminFinanceReviewWorkspaceSplitter:hover:before, .adminFinanceReviewWorkspace.isEvidenceResizing .adminFinanceReviewWorkspaceSplitter:before, .adminFinanceReviewWorkspaceSplitter:hover:after, .adminFinanceReviewWorkspace.isEvidenceResizing .adminFinanceReviewWorkspaceSplitter:after {
  background: color-mix(in srgb, var(--focus), transparent 12%);
}

.adminFinanceReviewWorkspaceSplitter:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 18%);
  outline-offset: 2px;
}

.adminFinanceReviewRailModes {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceReviewEvidenceRail.isCollapsed {
  display: none;
}

.adminFinanceReviewEvidenceToggle {
  width: 30px;
  min-width: 30px;
  height: 30px;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  border-radius: 9px;
  justify-content: center;
  align-items: center;
  transition: background-color .12s, color .12s, transform .12s;
  display: inline-flex;
}

.adminFinanceReviewEvidenceToggle:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 64%);
  outline: none;
}

.adminFinanceReviewEvidenceEdgeToggle {
  z-index: 2;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  margin: 0;
  padding: 0;
  display: inline-flex;
  position: absolute;
  top: 18px;
  left: 0;
  transform: translateX(-50%);
}

.adminFinanceReviewEvidenceEdgeToggle:focus-visible {
  outline: none;
}

.adminFinanceReviewEvidenceEdgeToggle:focus-visible .adminFinanceReviewEvidenceEdgeToggleGlyphBox {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 64%);
}

.adminFinanceReviewEvidenceToggleGlyphBox, .adminFinanceReviewEvidenceEdgeToggleGlyphBox {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 20%);
  border-radius: 9px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 30px;
  height: 30px;
  display: inline-flex;
}

.adminFinanceReviewEvidenceToggleGlyph, .adminFinanceReviewEvidenceEdgeToggleGlyph {
  width: 15px;
  height: 15px;
  stroke: color-mix(in srgb, var(--fg), var(--muted) 24%);
  stroke-width: 2.2px;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
  display: block;
  transform: translateX(-.5px);
}

.adminFinanceReviewEvidenceToggle:hover .adminFinanceReviewEvidenceToggleGlyph, .adminFinanceReviewEvidenceEdgeToggle:hover .adminFinanceReviewEvidenceEdgeToggleGlyph {
  stroke: color-mix(in srgb, var(--fg), var(--focus) 22%);
}

body[data-admin-finance-evidence-resizing="1"] {
  cursor: col-resize;
  -webkit-user-select: none;
  user-select: none;
}

body[data-admin-finance-pdf-panning="1"] {
  cursor: grabbing;
  -webkit-user-select: none;
  user-select: none;
}

.adminFinanceReviewDocumentTabs {
  gap: 10px;
  padding-bottom: 2px;
  display: flex;
  overflow: auto;
}

.adminFinanceReviewDocumentTab {
  color: var(--muted);
  font: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  border-bottom: 1px solid #0000;
  flex: none;
  padding: 0 0 6px;
  font-weight: 600;
  transition: border-color .12s, color .12s;
}

.adminFinanceReviewDocumentTab:hover {
  color: var(--text);
}

.adminFinanceReviewDocumentTab.isActive {
  border-bottom-color: color-mix(in srgb, var(--focus), transparent 30%);
  color: var(--text);
}

.adminFinanceRegistryBody {
  gap: 14px;
}

.adminFinanceRegistryFilterBody {
  gap: 12px;
  container: admin-filter-card / inline-size;
}

.adminFinanceRegistryFilterBody .field, .adminFinanceRegistryFilterBody label.field {
  margin-top: 0;
}

.adminFinanceRegistryFilterBody.isSearchOnly {
  padding-top: 10px;
}

.adminFinanceRegistryFilterGrid {
  grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr) minmax(220px, .9fr);
  gap: 12px;
  display: grid;
}

.adminFinanceCostControlFilterGrid {
  grid-template-columns: minmax(320px, 1fr) 280px 280px max-content;
  align-items: end;
}

.adminFinanceCostControlFilterGrid.isSearchOnly {
  grid-template-columns: minmax(0, 1fr) max-content;
  align-items: end;
}

.adminFinanceCostControlSiteField, .adminFinanceCostControlDateField {
  min-width: 0;
}

.adminFinanceCostControlFilterGrid.isSearchOnly .adminFinanceCostControlSiteField {
  max-width: none;
}

.adminFinanceFilterRow {
  align-items: end;
  min-width: 0;
}

.adminFinanceFilterRow > .field, .adminFinanceFilterRow > label.field, .adminFinanceFilterRow > .adminFinanceFilterActionCluster {
  min-width: 0;
  margin-top: 0;
}

.adminFinanceFilterRowInvoicesTop {
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(220px, .9fr);
}

.adminFinanceFilterRowInvoicesBottom {
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) max-content;
}

.adminFinanceCostControlFilterRow {
  grid-template-columns: minmax(320px, 1fr) 240px 240px 108px;
}

.adminFinanceCostControlFilterRow.isSearchOnly {
  grid-template-columns: minmax(0, 1fr) 108px;
}

.adminFinanceFilterActionCluster {
  grid-template-columns: 150px 108px;
  justify-content: end;
  justify-self: end;
  align-items: end;
  gap: 10px;
  width: min(100%, 268px);
  min-width: 0;
  max-width: 268px;
  display: grid;
}

.adminFinanceFilterActionField {
  width: 108px;
  min-width: 0;
}

.adminFinanceCostControlActionField {
  justify-self: end;
  width: 108px;
}

.adminFinanceFilterActionField .btn {
  width: 100%;
}

.adminFinanceInvoicesTable th:first-child, .adminFinanceInvoicesTable td:first-child {
  width: 196px;
}

.adminFinanceInvoicesTable th:nth-child(2), .adminFinanceInvoicesTable td:nth-child(2) {
  width: 214px;
}

.adminFinanceInvoicesTable th:nth-child(3), .adminFinanceInvoicesTable td:nth-child(3) {
  width: 172px;
}

.adminFinanceInvoicesTable th:nth-child(4), .adminFinanceInvoicesTable td:nth-child(4) {
  min-width: 218px;
}

.adminFinanceInvoicesTable th:nth-child(5), .adminFinanceInvoicesTable td:nth-child(5) {
  width: 146px;
}

.adminFinanceInvoicesTable th:nth-child(6), .adminFinanceInvoicesTable td:nth-child(6) {
  width: 148px;
}

.adminFinanceRegistryActionsCell {
  min-width: 128px;
}

.adminFinanceReviewGrid {
  grid-template-columns: minmax(340px, .8fr) minmax(460px, 1.2fr);
  align-items: start;
  gap: 16px;
  display: grid;
}

.adminFinanceReviewGrid > .card, .adminFinanceReviewEvidenceBody, .adminFinanceReviewForm, .adminFinanceDocumentSection, .adminFinancePreviewCard, .adminFinanceExtractionCard, .adminFinanceAllocationRow, .adminFinanceDuplicateItem, .adminFinanceLinkedSupplierCard, .adminFinanceDocumentButton, .adminFinanceReviewSummaryItem, .adminFinanceEvidenceMetaItem {
  gap: 14px;
  min-width: 0;
}

.adminFinanceReviewWorkspaceBody {
  scrollbar-width: none;
  -ms-overflow-style: none;
  gap: 10px;
  min-width: 0;
  display: grid;
}

.adminFinanceReviewWorkspaceBody::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.adminFinanceReviewSummaryStrip {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  align-items: stretch;
  gap: 8px;
  display: grid;
}

.adminFinanceReviewSummaryActions {
  flex-wrap: wrap;
  grid-column: 1 / -1;
  justify-content: flex-end;
  align-items: flex-end;
  gap: 8px;
  display: flex;
}

.adminFinanceReviewTabs {
  z-index: 2;
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  background: linear-gradient(180deg, color-mix(in srgb, var(--bg), white 100%) 0%, color-mix(in srgb, var(--bg), white 99%) 86%, transparent 100%);
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 0 0 10px;
  display: flex;
  position: sticky;
  top: 0;
}

.adminFinanceReviewTab {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 16%);
  border-radius: var(--radius);
  background: color-mix(in srgb, white, var(--bg) 10%);
  min-height: 40px;
  color: color-mix(in srgb, var(--text), var(--muted) 16%);
  font: inherit;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  padding: 0 14px;
  font-weight: 580;
  transition: background-color .12s, border-color .12s, color .12s;
  display: inline-flex;
}

.adminFinanceReviewTab:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 64%);
  background: color-mix(in srgb, var(--focus), white 98%);
}

.adminFinanceReviewTab.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 24%);
  background: color-mix(in srgb, var(--focus), white 92%);
  color: color-mix(in srgb, var(--focus), black 18%);
}

.adminFinanceReviewTabPanel {
  gap: 12px;
  min-width: 0;
  display: grid;
}

.adminFinanceReviewUtilityRow {
  justify-content: flex-end;
  margin: -2px 0 2px;
  display: flex;
}

.adminFinanceReviewUtilityButton {
  border-color: color-mix(in srgb, var(--stroke), transparent 12%);
  background: color-mix(in srgb, white, var(--bg) 12%);
  min-height: 36px;
  color: color-mix(in srgb, var(--muted), var(--fg) 22%);
  padding: 0 12px;
}

.adminFinanceReviewUtilityButton:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 54%);
  background: color-mix(in srgb, var(--focus), white 97%);
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminFinanceReviewUtilityButton.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 38%);
  background: color-mix(in srgb, var(--focus), white 94%);
  color: color-mix(in srgb, var(--focus), black 14%);
}

.adminFinanceReviewSections {
  gap: 14px;
  display: grid;
}

.adminFinanceReviewSection {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  background: #fff;
  gap: 12px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceSectionHint, .adminFinanceReviewFieldHint {
  margin: 0;
}

.adminFinanceReviewSectionGrid, .adminFinanceReviewSectionGrid.isTwoColumn {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}

.adminFinanceReviewAttentionGrid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceReviewAttentionCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 20%);
  gap: 6px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceReviewAttentionCard.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 55%);
  background: color-mix(in srgb, var(--warn), white 96%);
}

.adminFinanceReviewAttentionCard.isDanger {
  border-color: color-mix(in srgb, var(--danger), transparent 50%);
  background: color-mix(in srgb, var(--danger), white 96%);
}

.adminFinanceReviewAttentionCard.isInfo {
  border-color: color-mix(in srgb, var(--ok), transparent 56%);
  background: color-mix(in srgb, var(--ok), white 96%);
}

.adminFinanceReviewSummaryGrid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  display: grid;
}

.adminFinanceReviewSummaryItem, .adminFinanceEvidenceMetaItem {
  align-content: start;
  gap: 6px;
  display: grid;
}

.adminFinanceEvidenceMetaGrid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 8px;
  display: grid;
}

.adminFinanceEvidenceChipRow {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminFinanceEvidenceMetaLine {
  margin: 0;
}

.adminFinanceDocumentSection {
  gap: 10px;
  display: grid;
}

.adminFinanceContextSection {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg), white 18%);
  padding: 12px;
}

.adminFinanceExtractionCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 24%);
  gap: 12px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceDiagnosticsPanel {
  gap: 12px;
  min-width: 0;
  display: grid;
}

.adminFinanceExtractionCard.isCompleted {
  border-color: color-mix(in srgb, var(--ok), transparent 62%);
}

.adminFinanceExtractionCard.isFailed {
  border-color: color-mix(in srgb, var(--danger), transparent 58%);
  background: color-mix(in srgb, var(--danger), white 96%);
}

.adminFinanceExtractionHead {
  align-items: flex-start;
}

.adminFinanceExtractionOverview {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 62%);
  background: color-mix(in srgb, var(--focus), white 96%);
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceExtractionOverview.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 56%);
  background: color-mix(in srgb, var(--warn), white 96%);
}

.adminFinanceExtractionWarnings, .adminFinanceExtractionChecks, .adminFinanceExtractionHintList, .adminFinanceExtractionLineItems, .adminFinanceCorrectionList {
  gap: 8px;
  display: grid;
}

.adminFinanceExtractionWarning, .adminFinanceExtractionCheck, .adminFinanceExtractionHintCard, .adminFinanceExtractionLineItemCard, .adminFinanceExtractionFieldCard, .adminFinanceCorrectionCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg), white 22%);
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceExtractionWarning.isInfo, .adminFinanceExtractionCheck.isOk, .adminFinanceExtractionCheck.isPending {
  border-color: color-mix(in srgb, var(--focus), transparent 64%);
}

.adminFinanceExtractionWarning.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 56%);
}

.adminFinanceExtractionWarning.isError, .adminFinanceExtractionCheck.isFail {
  border-color: color-mix(in srgb, var(--danger), transparent 56%);
}

.adminFinanceContextSignalList, .adminFinanceContextLineMeta {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminFinanceContextReferenceList {
  gap: 8px;
  display: grid;
}

.adminFinanceContextReferenceCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 76%);
  background: color-mix(in srgb, var(--focus), white 97%);
  gap: 8px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceExtractionFieldGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceExtractionMeta {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceExtractionSnippet {
  margin: 0;
}

.adminFinanceCorrectionHead {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  display: flex;
}

.adminFinanceCorrectionValues {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  display: grid;
}

.adminFinanceExtractionTechnical {
  border-top: 1px dashed color-mix(in srgb, var(--stroke), transparent 14%);
  gap: 12px;
  padding-top: 4px;
  display: grid;
}

.adminFinanceExtractionTechnicalSummary {
  cursor: pointer;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  list-style: none;
  display: flex;
}

.adminFinanceExtractionTechnicalSummary::-webkit-details-marker {
  display: none;
}

.adminFinanceSubTitle {
  font-size: 18px;
  line-height: 1.18;
}

.adminFinanceDocumentList {
  gap: 8px;
  display: grid;
}

.adminFinanceDocumentButton {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg);
  text-align: left;
  justify-items: start;
  gap: 2px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceDocumentButton.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 20%);
  background: color-mix(in srgb, var(--focus), white 95%);
}

.adminFinancePreviewViewport {
  background: none;
  flex: auto;
  grid-template-rows: auto minmax(0, 1fr);
  align-content: start;
  gap: 0;
  min-height: 0;
  display: grid;
  overflow: hidden;
}

.adminFinancePreviewViewport.isPdf {
  background: none;
}

.adminFinancePreviewToolbar {
  z-index: 1;
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  background: linear-gradient(#fffffff0 0%, #ffffffd6 78%, #fff0 100%);
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  padding: 6px 4px 8px;
  display: grid;
  position: sticky;
  top: 0;
}

.adminFinancePreviewToolbarPage {
  min-height: 38px;
  color: color-mix(in srgb, var(--text), white 18%);
  white-space: nowrap;
  justify-self: start;
  font-size: 13px;
  font-weight: 600;
  line-height: 38px;
}

.adminFinancePreviewToolbarActions {
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.adminFinancePreviewToolbarButton {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: var(--radius);
  width: 38px;
  min-width: 38px;
  height: 38px;
  color: var(--text);
  cursor: pointer;
  background: #ffffffbd;
  justify-content: center;
  align-items: center;
  transition: border-color .12s, background-color .12s, color .12s;
  display: inline-flex;
}

.adminFinancePreviewToolbarButton:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 54%);
  background: #fffffff5;
}

.adminFinancePreviewToolbarButton:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 18%);
  outline-offset: 2px;
}

.adminFinancePreviewToolbarButton[disabled] {
  cursor: default;
  color: color-mix(in srgb, var(--muted), white 10%);
  border-color: color-mix(in srgb, var(--stroke), transparent 22%);
  background: #ffffff8f;
}

.adminFinancePreviewToolbarIcon {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7px;
  stroke-linecap: round;
  stroke-linejoin: round;
  width: 16px;
  height: 16px;
}

.adminFinancePreviewToolbarValue {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: var(--radius);
  min-height: 38px;
  color: color-mix(in srgb, var(--text), white 34%);
  white-space: nowrap;
  background: #ffffff9e;
  flex: none;
  justify-content: center;
  align-items: center;
  padding: 0 12px;
  font-size: 13px;
  font-weight: 600;
  line-height: 38px;
  display: inline-flex;
}

.adminFinancePreviewToolbarModeButton {
  font: inherit;
  cursor: pointer;
  transition: border-color .12s, background-color .12s, color .12s;
}

.adminFinancePreviewToolbarModeButton:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 46%);
  color: var(--text);
  background: #fffffff0;
}

.adminFinancePreviewToolbarModeButton:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 18%);
  outline-offset: 2px;
}

.adminFinancePreviewScrollSurface {
  scrollbar-width: none;
  -ms-overflow-style: none;
  height: 100%;
  min-height: 0;
  overflow: auto;
}

.adminFinancePreviewScrollSurface::-webkit-scrollbar {
  width: 0;
  height: 0;
  display: none;
}

.adminFinancePreviewScrollSurface.isPannable {
  cursor: grab;
}

.adminFinancePreviewScrollSurface.isPanning {
  cursor: grabbing;
}

.adminFinancePreviewCanvas {
  background: #fff;
  justify-content: center;
  align-items: flex-start;
  min-width: 100%;
  padding: 0;
  display: flex;
}

.adminFinancePreviewCanvas.isPannable {
  justify-content: flex-start;
}

.adminFinancePreviewFrame, .adminFinancePreviewImage {
  border: 0;
  width: 100%;
  height: 100%;
  min-height: 0;
  display: block;
}

.adminFinancePreviewPdfPage {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: #fff;
  width: 100%;
  max-width: none;
  height: auto;
  display: block;
  box-shadow: 0 10px 28px #2721141f;
}

.adminFinancePreviewPdfPage.isFitWidth, .adminFinancePreviewPdfPage.isZoom-100 {
  width: 100%;
}

.adminFinancePreviewPdfPage.isZoom-75 {
  width: 75%;
}

.adminFinancePreviewPdfPage.isZoom-125 {
  width: 125%;
}

.adminFinancePreviewPdfPage.isZoom-150 {
  width: 150%;
}

.adminFinancePreviewPdfPage.isZoom-175 {
  width: 175%;
}

.adminFinancePreviewPdfPage.isZoom-200 {
  width: 200%;
}

.adminFinancePreviewPdfPage.isZoom-225 {
  width: 225%;
}

.adminFinancePreviewImage {
  object-fit: contain;
  width: 100%;
  max-height: 640px;
}

.adminFinancePreviewFallback {
  text-align: center;
  justify-content: center;
  align-items: center;
  min-height: 220px;
  padding: 20px;
  display: flex;
}

.adminFinanceReviewFormGrid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  align-items: start;
  gap: 10px;
  display: grid;
}

.adminFinanceReviewFieldShell {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg), white 22%);
  padding: 10px 12px;
}

.adminFinanceReviewFieldShell.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 50%);
  background: color-mix(in srgb, var(--warn), white 97%);
}

.adminFinanceReviewFieldShell.isDanger, .adminFinanceReviewFieldShell.isInferredMismatch {
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
  background: color-mix(in srgb, var(--danger), white 97%);
}

.adminFinanceReviewFieldShell.isInferredMismatch .input {
  border-color: color-mix(in srgb, var(--danger), transparent 45%);
  background: color-mix(in srgb, white, var(--bg) 10%);
}

.adminFinanceReviewFieldMeta {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminFinanceReviewFieldBadge.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 35%);
  background: color-mix(in srgb, var(--warn), white 92%);
}

.adminFinanceReviewFieldBadge.isDanger {
  border-color: color-mix(in srgb, var(--danger), transparent 35%);
  background: color-mix(in srgb, var(--danger), white 92%);
}

.adminFinanceReviewFieldPrimary {
  grid-column: span 2;
}

.adminFinanceReviewSheet {
  gap: 18px;
}

.adminFinanceReviewSheet .muted {
  color: color-mix(in srgb, var(--muted), var(--fg) 6%);
}

.adminFinanceReviewSheet > .adminFinancePanelHead .adminFinancePanelTitle {
  font-size: 15px;
  line-height: 1.2;
}

.adminFinanceReviewSheet > .adminFinancePanelHead .adminFinanceSectionHint {
  max-width: 72ch;
}

.adminFinanceReviewSheet .adminFinanceReviewSections {
  gap: 22px;
}

.adminFinanceReviewSheet .adminFinanceReviewSection {
  border: 0;
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 4%);
  background: none;
  padding: 18px 0 0;
}

.adminFinanceReviewSheet .adminFinanceReviewSection:first-child {
  border-top: 0;
  padding-top: 0;
}

.adminFinanceReviewSectionToggle {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 0;
  display: flex;
}

.adminFinanceReviewSectionToggle:hover .adminFinanceReviewSectionToggleGlyph {
  color: color-mix(in srgb, var(--focus), black 10%);
}

.adminFinanceReviewSectionToggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 12%);
  outline-offset: 6px;
  border-radius: var(--radius);
}

.adminFinanceReviewSectionToggleMain {
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  display: flex;
}

.adminFinanceReviewSectionToggleGlyph {
  width: 20px;
  height: 20px;
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  flex: none;
  justify-content: center;
  align-items: center;
  margin-top: 1px;
  transition: color .12s;
  display: inline-flex;
}

.adminFinanceReviewSectionChevron {
  fill: currentColor;
  width: 16px;
  height: 16px;
}

.adminFinanceReviewSectionToggleText {
  gap: 4px;
  min-width: 0;
  display: grid;
}

.adminFinanceReviewSectionSummary {
  text-align: right;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 0 42%;
  align-self: center;
  min-width: 0;
  padding-left: 12px;
  font-size: 15px;
  line-height: 1.4;
  overflow: hidden;
}

.adminFinanceReviewSectionBody {
  gap: 12px;
  padding: 10px 0 0 30px;
  display: grid;
}

.adminFinanceReviewSectionBodyNotes {
  padding-top: 2px;
}

.adminFinanceReviewPaymentBody {
  gap: 8px;
  padding-top: 6px;
}

.adminFinanceCostControlSection {
  gap: 12px;
  display: grid;
}

.adminFinanceCostControlSectionToggle {
  width: 100%;
  color: inherit;
  text-align: left;
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding: 0;
  display: flex;
}

.adminFinanceCostControlSectionToggle:hover .adminFinanceCostControlSectionToggleGlyph {
  color: color-mix(in srgb, var(--focus), black 10%);
}

.adminFinanceCostControlSectionToggle:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 12%);
  outline-offset: 6px;
  border-radius: var(--radius);
}

.adminFinanceCostControlSectionToggleMain {
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  display: flex;
}

.adminFinanceCostControlSectionToggleGlyph {
  width: 20px;
  height: 20px;
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  flex: none;
  justify-content: center;
  align-items: center;
  margin-top: 1px;
  transition: color .12s;
  display: inline-flex;
}

.adminFinanceCostControlSectionToggleText {
  gap: 4px;
  min-width: 0;
  display: grid;
}

.adminFinanceCostControlSectionSummary {
  text-align: right;
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: 0 42%;
  align-self: center;
  min-width: 0;
  padding-left: 12px;
  font-size: 15px;
  line-height: 1.4;
  overflow: hidden;
}

.adminFinanceCostControlSectionBody {
  gap: 12px;
  padding: 2px 0 0 30px;
  display: grid;
}

.adminFinanceReviewSheet .adminFinanceReviewFieldShell, .adminFinanceReviewSheet .adminFinanceReviewReadOnlyCard {
  border-color: color-mix(in srgb, var(--stroke), transparent 18%);
  background: color-mix(in srgb, white, var(--bg) 9%);
}

.adminFinanceReviewSheet .adminFinanceReviewFieldShell.isInferredMismatch {
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
  background: color-mix(in srgb, var(--danger), white 97%);
}

.adminFinanceReviewSheet .adminFinanceReviewFieldShell .label, .adminFinanceReviewSheet .adminFinanceReviewReadOnlyCard .label, .adminFinanceReviewSheet .adminFinanceSectionHint, .adminFinanceReviewSheet .adminFinanceReviewFieldHint, .adminFinanceReviewSheet .adminFinanceLookupHint {
  color: color-mix(in srgb, var(--muted), var(--fg) 10%);
}

.adminFinanceReviewNotesTextarea {
  min-height: 160px;
}

.adminFinanceReviewAlertStack {
  gap: 8px;
  display: grid;
}

.adminFinanceReviewReadOnlyCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: #fff;
  padding: 10px 12px;
}

.adminFinanceReviewReadOnlyCard.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 50%);
  background: color-mix(in srgb, var(--warn), white 97%);
}

.adminFinanceReviewReadOnlyCard.isInfo {
  border-color: color-mix(in srgb, var(--focus), transparent 52%);
  background: color-mix(in srgb, var(--focus), white 97%);
}

.adminFinanceReviewReadOnlyCard.isDanger {
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
  background: color-mix(in srgb, var(--danger), white 97%);
}

.adminFinanceReviewStaticValue {
  overflow-wrap: anywhere;
  min-width: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.28;
  display: block;
}

.adminFinanceReviewStaticMeta {
  margin: 0;
}

.adminFinanceReviewStaticNote {
  min-height: 44px;
  color: color-mix(in srgb, var(--fg), black 4%);
  white-space: pre-wrap;
  font-size: 15px;
  line-height: 1.5;
}

.adminFinanceReviewCandidates {
  gap: 8px;
  display: grid;
}

.adminFinanceReviewCandidatesSummary {
  cursor: pointer;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  list-style: none;
  display: flex;
}

.adminFinanceReviewCandidatesSummary::-webkit-details-marker {
  display: none;
}

.adminFinanceReviewCandidateList {
  gap: 8px;
  display: grid;
}

.adminFinanceReviewCandidateOption {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 58%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--focus), white 97%);
  text-align: left;
  justify-items: start;
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceReviewCandidateOption:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 30%);
  background: color-mix(in srgb, var(--focus), white 94%);
}

.adminFinanceReviewCandidateOption.isStatic {
  cursor: default;
}

.adminFinanceReviewCandidateOption.isStatic:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 58%);
  background: color-mix(in srgb, var(--focus), white 97%);
}

.adminFinanceDiagnosticsCardGrid {
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 12px;
  display: grid;
}

.adminFinanceDiagnosticsCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  border-radius: var(--radius);
  background: color-mix(in srgb, white, var(--bg-2) 18%);
  gap: 10px;
  padding: 14px;
  display: grid;
}

.adminFinanceDiagnosticsCardHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminFinanceCompareStrip {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 68%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--focus), white 97%);
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 12px 14px;
  display: flex;
}

.adminFinanceCompareActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceCompareCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 62%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--focus), white 98%);
  gap: 12px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceCompareDiffList {
  gap: 8px;
  display: grid;
}

.adminFinanceCompareDiffRow {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  border-radius: var(--radius);
  background: color-mix(in srgb, white, var(--bg) 10%);
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceCompareDiffValues {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminFinanceCompareDiffArrow {
  color: var(--muted);
}

.adminFinanceInlineAlert {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg), white 22%);
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceInlineAlert.isError {
  border-color: color-mix(in srgb, var(--danger), transparent 52%);
  background: color-mix(in srgb, var(--danger), white 97%);
}

.adminFinanceInlineAlert.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 52%);
  background: color-mix(in srgb, var(--warn), white 97%);
}

.adminFinanceInlineAlert.isInfo {
  border-color: color-mix(in srgb, var(--focus), transparent 60%);
  background: color-mix(in srgb, var(--focus), white 98%);
}

.adminFinanceAllocationSummaryGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceAllocationSummaryCard {
  min-height: 84px;
}

.adminFinanceAllocationSurface {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, white, var(--bg) 8%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--stroke), transparent 28%);
  padding: 14px 16px;
}

.adminFinanceAllocationSeedRow {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 30%);
  border-radius: var(--radius);
  gap: 10px;
  padding: 12px;
  display: grid;
}

.adminFinanceAllocationSuggestionPill {
  cursor: pointer;
}

.adminFinanceAllocationSeedDetails {
  gap: 0;
  padding: 0;
}

.adminFinanceAllocationSeedDetails > .adminFinanceCompactDetailsSummary {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  column-gap: 12px;
  min-height: 28px;
  margin: 0;
  padding: 14px 16px;
  line-height: 1;
  display: grid;
}

.adminFinanceAllocationSeedDetails[open] > .adminFinanceCompactDetailsSummary {
  padding-bottom: 0;
}

.adminFinanceAllocationSeedDetails > .adminFinanceCompactDetailsSummary > span {
  align-items: center;
  min-height: 28px;
  margin: 0;
  padding: 0;
  line-height: 1;
  display: flex;
}

.adminFinanceAllocationSeedDetails > .adminFinanceDocumentSection {
  padding: 10px 16px 14px;
}

.adminFinanceAllocationModeCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 34%);
  border-radius: var(--radius);
  gap: 12px;
  padding: 12px;
  display: grid;
}

.adminFinanceAllocationLineSeedGrid {
  gap: 10px;
  display: grid;
}

.adminFinanceAllocationLineSeedCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 46%);
  border-radius: calc(var(--radius)  + 1px);
  background: #fff;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 12px 14px;
  display: flex;
}

.adminFinanceAllocationLineSeedCard > .adminFinanceStack {
  flex: auto;
  min-width: 0;
}

.adminFinanceAllocationLineSeedCard > .btn {
  align-self: center;
}

.adminFinanceReviewAllocationBody {
  gap: 16px;
}

.adminFinanceCostControlSummaryBar {
  margin-bottom: 6px;
}

.adminFinanceCostControlHead {
  z-index: auto;
  position: static;
  top: auto;
}

.adminFinanceCostControlSummaryMeta {
  flex-wrap: wrap;
  gap: 8px 12px;
  display: flex;
}

.adminFinanceCostControlSummaryAddress {
  max-width: 44ch;
}

.adminFinanceCostControlSummaryContextGrid {
  grid-template-columns: minmax(0, 1.6fr) repeat(2, minmax(0, .8fr));
  gap: 10px;
  display: grid;
}

.adminFinanceCostControlSummaryContextItem {
  align-content: start;
  gap: 6px;
  display: grid;
}

.adminFinanceCostControlSummaryMatrixWrap {
  overflow-x: auto;
}

.adminFinanceCostControlCompositionGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 14px;
  display: grid;
}

.adminFinanceCostControlCompositionCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: #fff;
  gap: 12px;
  padding: 14px;
  display: grid;
}

.adminFinanceCostControlCompositionCard.isExpanded {
  grid-column: 1 / -1;
}

.adminFinanceCostControlCompositionCard.isPending {
  background: color-mix(in srgb, var(--focus), white 98%);
  border-color: color-mix(in srgb, var(--focus), transparent 74%);
}

.adminFinanceCostControlCompositionHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminFinanceCostControlCompositionBar {
  background: color-mix(in srgb, var(--bg-2), white 18%);
  width: 100%;
  height: 12px;
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--stroke), transparent 10%);
  border-radius: 999px;
  display: flex;
  overflow: hidden;
}

.adminFinanceCostControlCompositionSegment {
  flex: 10%;
  min-width: 0;
  height: 100%;
  display: block;
}

.adminFinanceCostControlCompositionSegment.isLabor, .adminFinanceCostControlCompositionSwatch.isLabor {
  background: color-mix(in srgb, var(--focus), white 24%);
}

.adminFinanceCostControlCompositionSegment.isInvoice, .adminFinanceCostControlCompositionSwatch.isInvoice {
  background: color-mix(in srgb, var(--warning), white 18%);
}

.adminFinanceCostControlCompositionLegend {
  gap: 8px;
  display: grid;
}

.adminFinanceCostControlCompositionLegendItem {
  grid-template-columns: 12px minmax(0, 1fr) auto;
  align-items: center;
  gap: 4px 8px;
  display: grid;
}

.adminFinanceCostControlCompositionSwatch {
  border-radius: 999px;
  width: 12px;
  height: 12px;
}

.adminFinanceCostControlSummaryMatrix {
  border-collapse: collapse;
  width: 100%;
}

.adminFinanceCostControlSummaryMatrix th, .adminFinanceCostControlSummaryMatrix td {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  text-align: left;
  vertical-align: middle;
  padding: 12px 14px;
}

.adminFinanceCostControlSummaryMatrix thead th {
  color: color-mix(in srgb, var(--muted), var(--fg) 10%);
  letter-spacing: .08em;
  text-transform: uppercase;
  border-top: 0;
  padding-top: 0;
  font-size: 12px;
}

.adminFinanceCostControlSummaryMatrix tbody th, .adminFinanceCostControlSummaryMatrix tbody td {
  font-size: 16px;
  line-height: 1.35;
}

.adminFinanceCostControlSummaryMatrix tbody th {
  font-weight: 700;
}

.adminFinanceCostControlSummaryMatrixRow.isMatched th, .adminFinanceCostControlSummaryMatrixRow.isMatched td:last-child {
  color: color-mix(in srgb, var(--ok), black 22%);
}

.adminFinanceCostControlSummaryMatrixRow.isDifferent th, .adminFinanceCostControlSummaryMatrixRow.isDifferent td:last-child {
  color: #a55300;
}

.adminFinanceCostControlSummaryMatrixRow.isPending td:last-child {
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
}

.adminFinanceCostControlDiscrepancyGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.adminFinanceCostControlDiscrepancyCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: #fff;
  gap: 12px;
  padding: 14px;
  display: grid;
}

.adminFinanceCostControlDiscrepancyCard.isMatched {
  border-color: color-mix(in srgb, var(--ok), transparent 56%);
  background: color-mix(in srgb, var(--ok), white 96%);
}

.adminFinanceCostControlDiscrepancyCard.isDifferent {
  border-color: color-mix(in srgb, var(--warn), transparent 52%);
  background: color-mix(in srgb, var(--warn), white 96%);
}

.adminFinanceCostControlDiscrepancyCard.isPending {
  border-color: color-mix(in srgb, var(--focus), transparent 72%);
  background: color-mix(in srgb, var(--focus), white 98%);
}

.adminFinanceCostControlDiscrepancyHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminFinanceCostControlDiscrepancyHead .pill {
  flex: none;
}

.adminFinanceCostControlDiscrepancyValues {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceCostControlDiscrepancyActions {
  justify-content: flex-start;
  display: flex;
}

.adminFinanceInlineLink {
  color: var(--focus);
  text-underline-offset: 2px;
  text-decoration: underline;
}

.adminFinanceInlineLink:hover {
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminFinanceInlineLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  border-radius: 2px;
  outline: none;
}

.adminFinanceAllocationList {
  gap: 12px;
  display: grid;
}

.adminFinanceAllocationRow {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 56%);
  border-radius: calc(var(--radius)  + 1px);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 82%);
  background: #fff;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  padding: 10px 14px 14px;
  display: flex;
}

.adminFinanceAllocationField {
  flex: 0 auto;
  min-width: 0;
}

.adminFinanceAllocationField.isTarget {
  flex: 0 96px;
}

.adminFinanceAllocationField.isSite {
  flex: 160px;
}

.adminFinanceAllocationField.isAmount {
  flex: 0 108px;
}

.adminFinanceAllocationField.isNote {
  flex: 150px;
}

.adminFinanceAllocationRowActions {
  justify-content: flex-end;
  align-items: flex-end;
  display: flex;
}

.adminFinanceAllocationField.isAction {
  flex: none;
}

.adminFinanceAllocationRowActions > .btn {
  white-space: nowrap;
  min-width: 0;
  padding-inline: 12px;
}

.adminFinanceAllocationRowRemoveBtn {
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  font-size: 18px;
  line-height: 1;
  padding: 0 !important;
}

.adminFinanceAllocationRowRemoveBtn > span {
  justify-content: center;
  align-items: center;
  width: 100%;
  line-height: 1;
  display: inline-flex;
}

.adminFinanceAllocationAmountField {
  position: relative;
}

.adminFinanceAllocationAmountInput {
  padding-right: 56px;
}

.adminFinanceInlineInputButton {
  min-height: auto;
  color: color-mix(in srgb, var(--text-muted) 72%, white 28%);
  font: inherit;
  background: none;
  border: 0;
  padding: 0;
  font-size: .74rem;
  font-weight: 600;
  line-height: 1;
  transition: color .12s, transform .12s, opacity .12s;
  position: absolute;
  top: 50%;
  right: 14px;
  transform: translateY(-50%);
}

.adminFinanceInlineInputButton:hover:not(:disabled) {
  color: var(--text);
}

.adminFinanceInlineInputButton:active:not(:disabled) {
  color: var(--text);
  transform: translateY(calc(1px - 50%));
}

.adminFinanceInlineInputButton:disabled {
  opacity: .5;
  cursor: not-allowed;
}

.adminFinanceAllocationSurface .adminFinancePanelHead {
  padding-bottom: 4px;
}

.adminFinanceAllocationSurface .adminFinancePanelActions {
  padding-top: 4px;
}

.adminFinanceAllocationSurface.isManual {
  container: allocation-manual / inline-size;
}

.adminFinanceCostControlFeedGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  display: grid;
}

.adminFinanceCostControlFeedCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  border-radius: calc(var(--radius)  + 2px);
  background: #fff;
  gap: 12px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceCostControlFeedCard.isPending {
  border-color: color-mix(in srgb, var(--focus), transparent 74%);
  background: color-mix(in srgb, var(--focus), white 98%);
}

.adminFinanceCostControlFeedHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminFinanceCostControlFeedHead .pill.isSuccess {
  border-color: color-mix(in srgb, var(--success), transparent 44%);
  background: color-mix(in srgb, var(--success), white 94%);
}

.adminFinanceCostControlFeedHead .pill.isWarning {
  border-color: color-mix(in srgb, var(--warning), transparent 42%);
  background: color-mix(in srgb, var(--warning), white 94%);
}

.adminFinanceCostControlSectionSummaryGrid {
  margin-bottom: 12px;
}

.adminFinanceCostControlPendingCompareGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.adminFinanceCostControlSectionSummaryGrid .adminFinanceReviewReadOnlyCard, .adminFinanceCostControlPendingCompareGrid .adminFinanceReviewReadOnlyCard {
  border-radius: calc(var(--radius)  + 2px);
}

.adminFinanceCostControlPendingBaselineBody {
  gap: 10px;
  display: grid;
}

.adminFinanceCostControlTable td, .adminFinanceCostControlTable th {
  vertical-align: top !important;
}

.adminFinanceCostControlTable .adminListRow.isDanger {
  background: color-mix(in srgb, var(--danger), white 97%);
}

.adminFinanceCostControlTable .adminListRow.isWarning {
  background: color-mix(in srgb, var(--warning), white 97%);
}

.adminFinanceCostControlTable .adminListRow.isDanger:hover {
  background: color-mix(in srgb, var(--danger), white 95%);
}

.adminFinanceCostControlTable .adminListRow.isWarning:hover {
  background: color-mix(in srgb, var(--warning), white 95%);
}

.adminFinanceCostControlTaskList {
  flex-wrap: wrap;
  gap: 6px;
  min-width: 180px;
  display: flex;
}

.adminFinanceCostControlTaskChip {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 20%);
  border-radius: 999px;
  align-items: baseline;
  gap: 8px;
  padding: 4px 8px;
  line-height: 1.25;
  display: inline-flex;
}

.adminFinanceCostControlTaskChip strong {
  color: color-mix(in srgb, var(--muted), var(--fg) 10%);
  font-size: 12px;
}

.adminFinanceCostControlCellStack {
  gap: 4px;
  display: grid;
}

.adminFinanceCostControlBrowseSiteCell {
  justify-content: flex-start;
  align-items: center;
  min-width: 0;
  display: flex;
}

.adminFinanceCostControlBrowseTableWrap {
  padding: 0;
  overflow: auto hidden;
}

.adminFinanceCostControlBrowseCell {
  vertical-align: middle !important;
}

.adminFinanceCostControlTable tbody .adminFinanceCostControlBrowseCell {
  padding-top: 16px;
  padding-bottom: 16px;
  line-height: 1.1;
}

.adminFinanceCostControlBrowseValue {
  align-items: center;
  min-height: 34px;
  display: flex;
}

.adminFinanceCostControlBrowseCell.isCentered {
  text-align: center;
}

.adminFinanceCostControlBrowseCell.isCentered .adminFinanceCostControlBrowseValue {
  justify-content: center;
}

.adminFinanceCostControlBrowseCell.isCentered .adminGeoSortHeaderBtn {
  justify-content: center;
  width: 100%;
}

.adminFinanceCostControlBrowseSiteTitle {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  font-weight: 700;
  line-height: 1.1;
  display: inline-flex;
}

.adminFinanceCostControlBrowseColDate {
  width: 132px;
}

.adminFinanceCostControlBrowseColTime {
  width: 128px;
}

.adminFinanceCostControlBrowseColInvoices {
  width: 108px;
}

.adminFinanceCostControlBrowseColCost {
  width: 142px;
}

.adminFinanceCostControlBrowseColAction {
  width: 92px;
}

.adminFinanceCostControlBrowseActionBtn {
  min-height: 34px;
  padding: 0 12px;
  font-size: 13px;
  line-height: 1;
}

.adminFinanceCostControlRecordLink {
  color: var(--focus);
  text-underline-offset: 2px;
  font-weight: 600;
  text-decoration: underline;
}

.adminFinanceCostControlRecordLink:hover {
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminFinanceCostControlRecordLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  border-radius: 2px;
  outline: none;
}

.adminFinanceReadinessCard {
  border: 1px solid var(--stroke);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 36%);
  gap: 8px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceReadinessCard.isIncomplete {
  border-color: color-mix(in srgb, var(--danger), transparent 60%);
  background: color-mix(in srgb, var(--danger), white 96%);
}

.adminFinanceReadinessCard.isReady {
  border-color: color-mix(in srgb, var(--ok), transparent 58%);
  background: color-mix(in srgb, var(--ok), white 95%);
}

.adminFinanceReadinessList {
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.adminFinanceDuplicateCard {
  border: 1px solid color-mix(in srgb, var(--warn), transparent 52%);
  background: color-mix(in srgb, var(--warn), white 95%);
  gap: 10px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceDuplicateList {
  gap: 10px;
  display: grid;
}

.adminFinanceDuplicateItem {
  border: 1px solid color-mix(in srgb, var(--warn), transparent 66%);
  background: color-mix(in srgb, var(--bg), white 18%);
  gap: 8px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceDuplicateSignals {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminFinanceDuplicateMeta {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.adminFinanceSupplierLookup {
  gap: 10px;
  display: grid;
}

.adminFinanceSupplierLookupBlock {
  gap: 14px;
  display: grid;
}

.adminFinanceAcceptedAllocationList {
  gap: 10px;
  display: grid;
}

.adminFinanceAcceptedAllocationRow {
  grid-template-columns: minmax(140px, .7fr) minmax(220px, 1.2fr) minmax(160px, .8fr) minmax(220px, 1.1fr);
  gap: 10px;
  display: grid;
}

.adminFinanceSupplierDecisionBlock {
  gap: 10px;
  display: grid;
}

.adminFinanceSupplierDecisionHeader {
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.adminFinanceSupplierIdentity {
  flex: auto;
  min-width: 0;
}

.adminFinanceLinkedSupplierCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 24%);
  background: color-mix(in srgb, var(--focus), white 95%);
  border-radius: var(--radius);
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  padding: 12px;
  display: flex;
}

.adminFinanceLinkedSupplierActions {
  flex-direction: column;
  flex: none;
  align-items: flex-end;
  gap: 10px;
  display: flex;
}

.adminFinanceSupplierEmptyState {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 70%);
  background: color-mix(in srgb, var(--focus), white 98%);
  border-radius: var(--radius);
  gap: 6px;
  padding: 12px 14px;
  display: grid;
}

.adminFinanceSupplierSearchLane {
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  gap: 10px;
  padding-bottom: 12px;
  display: grid;
}

.adminFinanceSupplierSearchField {
  gap: 8px;
}

.adminFinanceSupplierSearchBlock {
  gap: 4px;
  display: grid;
}

.adminFinanceLookupHint {
  margin: 0;
}

.adminFinanceSupplierResults {
  gap: 8px;
  display: grid;
}

.adminFinanceSupplierSuggestionGrid {
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 12px;
  display: grid;
}

.adminFinanceSupplierCreateCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 26%);
  background: color-mix(in srgb, var(--focus), white 95%);
  border-radius: calc(var(--radius)  + 2px);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 56%);
  gap: 10px;
  padding: 16px 18px;
  display: grid;
}

.adminFinanceSupplierSuggestionTitle {
  margin: 0;
}

.adminFinanceReviewSubsectionHeader {
  gap: 4px;
  display: grid;
}

.adminFinanceReviewSubsectionHeader + .adminFinanceReviewFormGrid {
  margin-top: -4px;
}

.adminFinanceObraSuggestionGrid {
  gap: 12px;
  display: grid;
}

.adminFinanceObraSuggestionCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 76%);
  background: color-mix(in srgb, var(--bg-2), white 40%);
  border-radius: var(--radius);
  gap: 10px;
  padding: 12px;
  display: grid;
}

.adminFinanceObraEvidenceList {
  gap: 6px;
  display: grid;
}

.adminFinanceObraEvidenceItem {
  border-left: 2px solid color-mix(in srgb, var(--focus), transparent 30%);
  background: color-mix(in srgb, var(--focus), white 97%);
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.35;
  display: block;
}

.adminFinanceSupplierSuggestionCard {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 26%);
  background: color-mix(in srgb, var(--focus), white 95%);
  border-radius: calc(var(--radius)  + 2px);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 56%);
  gap: 12px;
  padding: 16px 18px;
  display: grid;
}

.adminFinanceSupplierSuggestionHead {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.adminFinanceSupplierStrengthBadge.isHigh {
  border-color: color-mix(in srgb, var(--ok), transparent 48%);
  background: color-mix(in srgb, var(--ok), white 94%);
  color: color-mix(in srgb, var(--ok), black 28%);
}

.adminFinanceSupplierStrengthBadge.isMedium {
  color: #9f6c0d;
  background: #fbf7ee;
  border-color: #cc8a1180;
}

.adminFinanceSupplierStrengthBadge.isLow {
  border-color: color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 8%);
  color: var(--text);
}

.adminFinanceSupplierSuggestionActions {
  justify-content: flex-start;
  display: flex;
}

.adminFinanceSupplierCreateGrid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceSupplierResultButton {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg);
  text-align: left;
  justify-items: start;
  gap: 2px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceReviewFieldFull {
  grid-column: 1 / -1;
}

.adminFinanceReviewStatusStrip {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr));
  gap: 10px;
  display: grid;
}

.adminFinanceStatusCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 42%);
  gap: 6px;
  padding: 10px 12px;
  display: grid;
}

.adminFinanceStatusCard.isReady {
  border-color: color-mix(in srgb, var(--ok), transparent 54%);
  background: color-mix(in srgb, var(--ok), white 95%);
}

.adminFinanceStatusCard.isNeutral {
  border-color: color-mix(in srgb, var(--focus), transparent 76%);
  background: color-mix(in srgb, var(--focus), white 98%);
}

.adminFinanceStatusCard.isIncomplete, .adminFinanceStatusCard.isWarning {
  border-color: color-mix(in srgb, var(--warn), transparent 48%);
  background: color-mix(in srgb, var(--warn), white 95%);
}

.adminDocumentProcessingLayout {
  gap: 18px;
}

.adminDocumentProcessingOverviewGrid {
  gap: 14px;
}

.adminDocumentProcessingOverviewCard {
  border-radius: calc(var(--radius)  + 6px);
  background: linear-gradient(180deg, color-mix(in srgb, white, var(--bg) 2%), color-mix(in srgb, var(--bg-2), white 55%));
  gap: 12px;
  min-height: 148px;
  padding: 18px;
  box-shadow: 0 1px #181c2305;
}

.adminDocumentProcessingOverviewHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminDocumentProcessingOverviewTitle {
  font-family: var(--font-condensed);
  letter-spacing: .01em;
  font-size: 18px;
  line-height: 1.1;
}

.adminDocumentProcessingOverviewHead .pill {
  flex: none;
  min-height: 28px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 1.1;
}

.adminDocumentProcessingOverviewMeta {
  min-width: 0;
  color: color-mix(in srgb, var(--muted), var(--fg) 12%);
  max-width: 44ch;
  font-size: 14px;
  line-height: 1.45;
}

.adminDocumentProcessingPillRow .pill {
  min-height: 26px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 1.1;
}

.adminDocumentProcessingSection {
  gap: 12px;
}

.adminDocumentProcessingSectionHead {
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.adminDocumentProcessingRuntimeGrid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminDocumentProcessingRuntimeItem {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  border-radius: calc(var(--radius)  + 4px);
  background: color-mix(in srgb, var(--bg-2), white 35%);
  gap: 8px;
  min-width: 0;
  padding: 12px 14px;
}

.adminDocumentProcessingDiagnostics {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 4px);
  background: color-mix(in srgb, white, var(--bg) 8%);
  margin-top: 12px;
  padding: 14px 16px;
}

.adminDocumentProcessingDiagnostics[open] .adminDocumentProcessingDiagnosticsGrid {
  margin-top: 12px;
}

.adminDocumentProcessingRuntimeItemWide {
  grid-column: span 2;
}

.adminDocumentProcessingRuntimeValueStack {
  gap: 8px;
  min-width: 0;
  display: grid;
}

.adminDocumentProcessingTextBreak {
  overflow-wrap: anywhere;
  word-break: break-word;
  min-width: 0;
}

.adminFinanceStatusChipRow {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.adminFinanceCompactDetails {
  gap: 10px;
  display: grid;
}

.adminFinanceCompactDetailsSummary {
  cursor: pointer;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  list-style: none;
  display: flex;
}

.adminFinanceCompactDetailsSummary::-webkit-details-marker {
  display: none;
}

.adminFinancePanelActionsSticky {
  z-index: 2;
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  background: color-mix(in srgb, white, var(--bg-2) 22%);
  padding: 12px;
  display: grid;
  position: sticky;
  bottom: 0;
  box-shadow: 0 -8px 24px #2721140f;
}

.adminFinanceDecisionFooterActions {
  justify-content: flex-end;
  display: flex;
}

.adminFinanceReviewFormEnd {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  gap: 12px;
  margin-top: 8px;
  padding-top: 12px;
  display: grid;
}

@media (max-width: 1080px) {
  .adminFinanceModePicker, .adminFinanceIntakeGrid {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminFinanceReviewHead, .adminFinanceReviewEvidenceRail, .adminFinanceReviewTabs {
    position: static;
  }

  .adminFinanceReviewExperience, .adminFinanceReviewStructureRule, .adminFinanceReviewStructureRule.isEvidenceCollapsed, .adminFinanceReviewStructureRule.isEvidenceOpen, .adminFinanceReviewWorkspace, .adminFinanceReviewWorkspace.isEvidenceCollapsed, .adminFinanceReviewWorkspace.isEvidenceOpen, .adminFinanceReviewGrid, .adminFinanceReviewSummaryBar, .adminFinanceReviewSummaryStrip, .adminFinanceReviewSummaryGrid, .adminFinanceReviewAttentionGrid, .adminFinanceCorrectionValues, .adminFinanceExtractionFieldGrid, .adminFinanceAllocationSummaryGrid, .adminFinanceCostControlDiscrepancyGrid, .adminFinanceCostControlDiscrepancyValues, .adminFinanceCostControlSummaryContextGrid, .adminFinanceCostControlFeedGrid, .adminDocumentProcessingRuntimeGrid, .adminFinanceUploadMetaGrid {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminFinanceReviewEvidenceBody, .adminFinanceReviewWorkspaceBody {
    max-height: none;
    overflow: visible;
  }

  .adminFinanceReviewWorkspaceSplitter {
    display: none;
  }

  .adminFinanceReviewHeadActions, .adminFinanceReviewTitleActions, .adminFinanceReviewRailModes {
    justify-content: flex-start;
  }

  .adminFinanceReviewTitleActions {
    width: 100%;
  }

  .adminFinanceReviewStructureRuleSplitter {
    display: none;
  }

  .adminFinanceUploadFooter {
    flex-direction: column;
    align-items: stretch;
  }

  .adminFinanceReviewSummaryActions, .adminFinanceDecisionFooterActions {
    justify-content: flex-start;
  }

  .adminFinanceDecisionFooterActions > .btn {
    width: 100%;
  }

  .adminFinanceUploadActions, .adminFinanceUploadSubmitRow {
    justify-content: flex-start;
    width: 100%;
  }

  .adminFinanceCompareStrip {
    flex-direction: column;
    align-items: flex-start;
  }

  .adminFinanceCompareDiffValues {
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
  }

  .adminFinanceReviewFieldPrimary, .adminDocumentProcessingRuntimeItemWide {
    grid-column: auto;
  }

  .adminFinanceAllocationLineSeedCard {
    flex-direction: column;
  }

  .adminFinanceAllocationRowActions {
    justify-content: flex-start;
  }

  .adminFinanceLinkedSupplierCard, .adminFinanceSupplierSuggestionHead, .adminFinanceSupplierDecisionHeader {
    flex-direction: column;
    align-items: flex-start;
  }

  .adminFinanceLinkedSupplierActions {
    align-items: flex-start;
  }

  .adminFinanceSupplierCreateGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@container allocation-manual (max-width: 860px) {
  .adminFinanceAllocationField.isTarget {
    flex-basis: 88px;
  }

  .adminFinanceAllocationField.isSite {
    flex-basis: 150px;
  }

  .adminFinanceAllocationField.isAmount {
    flex-basis: 104px;
  }

  .adminFinanceAllocationField.isNote {
    flex-basis: 136px;
  }

  .adminFinanceAllocationField.isAction {
    flex-basis: 100%;
  }

  .adminFinanceAllocationRowActions {
    justify-content: flex-end;
    margin-left: 0;
  }
}

@media (max-width: 720px) {
  .adminFinanceSupplierSuggestionGrid, .adminFinanceFilterRowInvoicesTop, .adminFinanceFilterRowInvoicesBottom, .adminFinanceCostControlFilterRow, .adminFinanceCostControlFilterRow.isSearchOnly {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminFinanceFilterActionCluster, .adminFinanceCostControlActionField {
    justify-self: stretch;
    width: 100%;
    max-width: none;
  }

  .adminFinanceFilterActionCluster {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminFinanceDropzone {
    text-align: left;
    grid-template-columns: minmax(0, 1fr);
  }

  .adminFinanceDropzoneIcon {
    width: 42px;
    height: 42px;
  }

  .adminFinanceUploadQueueItem {
    flex-direction: column;
    align-items: flex-start;
  }
}

.adminDirectoryActionsCell {
  text-align: right;
  width: 104px;
}

.adminDirectoryPrimaryCell {
  align-items: center;
  gap: 6px;
  min-width: 0;
  display: inline-flex;
}

.adminDirectoryPrimaryValue {
  min-width: 0;
}

.adminDirectoryInlineStatusBadge {
  flex-shrink: 0;
}

.adminDirectoryRowActions {
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  width: 100%;
  display: inline-flex;
}

.adminOperationsListPage .adminListTable th, .adminOperationsListPage .adminListTable td {
  vertical-align: middle;
}

.adminOperationsTableLink {
  color: inherit;
  text-underline-offset: 2px;
  border-radius: 3px;
  text-decoration: none;
}

.adminOperationsTableLink:hover {
  text-decoration: underline;
}

.adminOperationsTableLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  outline: none;
  text-decoration: underline;
}

.adminOperationsQuickActions {
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  gap: 6px;
  display: flex;
}

.adminOperationsQuickActions .btn {
  min-height: 30px;
  font-size: 13px;
  padding: 5px 10px !important;
}

.adminOperationsApprovalsPage {
  gap: 18px;
}

.adminApprovalsListSurface {
  overflow-anchor: none;
  gap: 0;
  padding-top: 4px;
  display: grid;
  position: relative;
}

.adminApprovalsResultsCard {
  box-shadow: none;
  background: none;
  border: 0;
}

.adminApprovalsResultsBody {
  gap: 12px;
  padding: 0;
}

.adminApprovalsResultsBody .adminEmptyText, .adminApprovalsResultsBody .adminApprovalsFocusNotice {
  margin-top: 0;
}

.adminApprovalsTableWrap {
  overflow-anchor: none;
  padding-bottom: 2px;
  overflow: auto hidden;
}

.adminOperationsTimesheetsTable {
  table-layout: fixed;
}

.adminTimesheetsColPeriod {
  width: 126px;
}

.adminTimesheetsColUser {
  width: 206px;
}

.adminTimesheetsColStatus {
  width: 162px;
}

.adminTimesheetsColWorked {
  width: 116px;
}

.adminTimesheetsColNonWorked {
  width: auto;
}

.adminTimesheetsColActions {
  width: 116px;
}

.adminOperationsReportsTable {
  table-layout: fixed;
}

.adminReportsColDate {
  width: 116px;
}

.adminReportsColUser {
  width: 198px;
}

.adminReportsColStatus {
  width: 162px;
}

.adminReportsColSite {
  width: auto;
}

.adminReportsColWorked {
  width: 112px;
}

.adminReportsColTickets {
  width: 86px;
}

.adminReportsSiteStack {
  gap: 1px;
  min-width: 0;
  display: grid;
}

.adminReportsWorkedStack {
  align-content: start;
  gap: 2px;
  display: grid;
}

.adminReportsSiteCode, .adminReportsSiteAddress {
  white-space: nowrap;
  text-overflow: ellipsis;
  display: block;
  overflow: hidden;
}

.adminReportsSiteCode {
  color: color-mix(in srgb, var(--fg), black 8%);
  font-size: 13px;
  line-height: 1.05;
}

.adminReportsSiteAddress {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.05;
}

.adminApprovalsTable {
  table-layout: fixed;
}

.adminApprovalsTable th, .adminApprovalsTable td {
  vertical-align: top;
}

.adminApprovalsResultsBody .adminApprovalsTable thead th {
  letter-spacing: .05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  padding-top: 10px;
  padding-bottom: 10px;
  font-size: 12px;
}

.adminListCardBody .adminApprovalsTable tbody td {
  vertical-align: top;
  padding-top: 10px;
  padding-bottom: 10px;
}

.adminApprovalsColItem {
  width: 170px;
}

.adminApprovalsColContext {
  width: auto;
}

.adminApprovalsColUser {
  width: 152px;
}

.adminApprovalsColState {
  width: 162px;
}

.adminApprovalsColActionLane {
  width: 198px;
}

.adminApprovalsSecondaryLine {
  white-space: nowrap;
  text-overflow: ellipsis;
  margin-top: 2px;
  font-size: 12px;
  line-height: 1.18;
  display: block;
  overflow: hidden;
}

.adminApprovalsReferenceLink {
  color: inherit;
  white-space: nowrap;
  text-overflow: ellipsis;
  border-radius: 4px;
  text-decoration: none;
  display: block;
  overflow: hidden;
}

.adminApprovalsItemPrimaryLine {
  flex-wrap: nowrap;
  align-items: center;
  gap: 7px;
  min-width: 0;
  max-width: 100%;
  display: flex;
}

.adminApprovalsTable .adminUsersNameLine, .adminApprovalsReferenceLink {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.22;
}

.adminApprovalsItemPrimaryLine .adminApprovalsReferenceLink {
  flex: 0 auto;
  min-width: 0;
  max-width: 100%;
}

.adminApprovalsReferenceLink:hover {
  text-decoration: underline;
}

.adminApprovalsReferenceLink:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 68%);
  outline: none;
  text-decoration: underline;
}

.adminApprovalsMetaChips {
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin-top: 1px;
  margin-bottom: 1px;
  display: flex;
}

.adminApprovalsMetaChip {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 45%);
  min-height: 17px;
  color: color-mix(in srgb, var(--fg), black 8%);
  white-space: nowrap;
  border-radius: 999px;
  align-items: center;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1.1;
  display: inline-flex;
}

.adminApprovalsInfoCell {
  align-content: start;
  gap: 1px;
  min-width: 0;
  display: grid;
}

.adminApprovalsInfoCellTimesheet {
  gap: 4px;
}

.adminApprovalsTimeMetricLine {
  white-space: nowrap;
  text-overflow: ellipsis;
  font-variant-numeric: tabular-nums;
  grid-template-columns: 7.6rem 7ch 1ch 7ch;
  align-items: baseline;
  column-gap: 6px;
  min-width: 0;
  line-height: 1.2;
  display: grid;
  overflow: hidden;
}

.adminApprovalsTimeMetricLabel {
  text-transform: uppercase;
  letter-spacing: .04em;
  color: color-mix(in srgb, var(--muted), var(--fg) 14%);
  flex: none;
  font-size: 11px;
}

.adminApprovalsTimeMetricValue {
  color: color-mix(in srgb, var(--fg), black 8%);
  justify-self: end;
  font-size: 15px;
  font-weight: 600;
}

.adminApprovalsTimeMetricSlash {
  color: color-mix(in srgb, var(--muted), transparent 12%);
  flex: none;
  font-size: 13px;
}

.adminApprovalsTimeMetricTotal {
  color: color-mix(in srgb, var(--muted), var(--fg) 8%);
  justify-self: end;
  font-size: 13px;
  font-weight: 500;
}

.adminApprovalsTimeMetricLineNonWorked .adminApprovalsTimeMetricValue {
  color: color-mix(in srgb, var(--fg), transparent 24%);
  font-size: 14px;
}

.adminApprovalsInfoLine {
  white-space: nowrap;
  text-overflow: ellipsis;
  min-width: 0;
  line-height: 1.22;
  display: block;
  overflow: hidden;
}

.adminApprovalsInfoLinePrimary {
  color: color-mix(in srgb, var(--fg), black 8%);
  font-size: 14px;
  font-weight: 500;
}

.adminApprovalsInfoLineSecondary {
  color: var(--muted);
  font-size: 12px;
}

.adminApprovalsInfoLineWithTaskHint {
  align-items: baseline;
  display: flex;
  overflow: visible;
}

.adminApprovalsInfoLineWithInlineHints {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0;
  display: flex;
  overflow: visible;
}

.adminApprovalsInfoRouteHints {
  align-items: baseline;
  gap: .16em;
  margin-left: .38em;
  display: inline-flex;
}

.adminApprovalsTaskCountHint {
  -webkit-text-decoration: underline dotted color-mix(in srgb, var(--muted), var(--fg) 20%);
  text-decoration: underline dotted color-mix(in srgb, var(--muted), var(--fg) 20%);
  text-underline-offset: 2px;
  cursor: default;
  position: relative;
}

.adminApprovalsTaskCountTooltip {
  z-index: 30;
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  min-width: 180px;
  max-width: min(360px, 72vw);
  max-height: 220px;
  color: color-mix(in srgb, var(--fg), black 8%);
  white-space: normal;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  background: #fff;
  border-radius: 8px;
  padding: 8px 10px;
  font-size: 12px;
  line-height: 1.35;
  transition: opacity 80ms, transform 80ms, visibility 80ms;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  overflow: auto;
  transform: translateY(2px);
  box-shadow: 0 10px 24px #00000029;
}

.adminApprovalsTaskCountTooltipLine {
  display: block;
}

.adminApprovalsTaskCountHint:hover .adminApprovalsTaskCountTooltip, .adminApprovalsTaskCountHint:focus-visible .adminApprovalsTaskCountTooltip {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.adminApprovalsInfoLineGhost {
  visibility: hidden;
}

.adminApprovalsInfoLineAttachments {
  align-items: center;
  gap: 6px;
  display: flex;
  overflow: visible;
}

.adminApprovalsInfoPrefix {
  color: color-mix(in srgb, var(--muted), var(--fg) 12%);
  text-transform: none;
  flex: none;
  font-size: 12px;
  line-height: 1;
}

.adminApprovalsAttachmentStrip {
  align-items: center;
  gap: 3px;
  min-width: 0;
  display: inline-flex;
}

.adminApprovalsAttachmentCount {
  color: color-mix(in srgb, var(--fg), black 8%);
  flex: none;
  min-width: 14px;
  font-size: 12px;
  font-weight: 600;
}

.adminApprovalsAttachmentCountFallback {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 2%);
  background: color-mix(in srgb, var(--bg), white 55%);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  line-height: 1;
  display: inline-flex;
}

.adminApprovalsAttachmentThumbLink {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  appearance: none;
  cursor: pointer;
  background: #fff;
  border-radius: 3px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  padding: 0;
  display: inline-flex;
  position: relative;
}

.adminApprovalsAttachmentThumbLink:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 25%);
}

.adminApprovalsAttachmentThumb {
  object-fit: cover;
  border-radius: 2px;
  width: 100%;
  height: 100%;
  display: block;
}

.adminApprovalsAttachmentHoverCard {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 2%);
  background: color-mix(in srgb, var(--bg), white 80%);
  width: 300px;
  height: 220px;
  box-shadow: 0 8px 24px color-mix(in srgb, var(--fg), transparent 86%);
  z-index: 30;
  pointer-events: none;
  border-radius: 8px;
  padding: 6px;
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
}

.adminApprovalsTable tbody tr:first-child .adminApprovalsAttachmentHoverCard, .adminApprovalsTable tbody tr:nth-child(2) .adminApprovalsAttachmentHoverCard {
  top: calc(100% + 8px);
  bottom: auto;
}

.adminApprovalsAttachmentHoverImage {
  object-fit: contain;
  background: #fff;
  border-radius: 4px;
  width: 100%;
  height: 100%;
  display: block;
}

.adminApprovalsAttachmentHoverLoading {
  background: linear-gradient(90deg, color-mix(in srgb, var(--bg), var(--fg) 5%) 0%, color-mix(in srgb, var(--bg), var(--fg) 11%) 50%, color-mix(in srgb, var(--bg), var(--fg) 5%) 100%);
  background-size: 300px 220px;
  border-radius: 4px;
  width: 100%;
  height: 100%;
  animation: 1.1s linear infinite adminApprovalsAttachmentShimmer;
  display: block;
}

@keyframes adminApprovalsAttachmentShimmer {
  0% {
    background-position: -300px 0;
  }

  100% {
    background-position: 300px 0;
  }
}

.adminApprovalsAttachmentMore {
  text-align: center;
  min-width: 20px;
  color: var(--muted);
  flex: none;
  font-size: 11px;
  line-height: 1;
}

.adminApprovalsAttachmentLoadingDot {
  background: color-mix(in srgb, var(--focus), var(--bg) 45%);
  opacity: .7;
  border-radius: 999px;
  flex: none;
  width: 6px;
  height: 6px;
}

.adminApprovalsStateCell, .adminOperationsReviewStatusCell {
  align-content: start;
  justify-items: start;
  gap: 4px;
  min-width: 0;
  display: grid;
}

.adminApprovalsStateCell .pill, .adminOperationsReviewStatusCell .pill {
  white-space: nowrap;
  min-height: 28px;
  padding: 0 10px;
  font-size: 12px;
  line-height: 1.1;
}

.adminApprovalsStateTime, .adminOperationsReviewStatusTime {
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: clamp(10px, .69vw, 11px);
  line-height: 1.05;
  overflow: hidden;
}

.adminApprovalsFocusNotice {
  border: 1px solid color-mix(in srgb, var(--warn), transparent 45%);
  background: color-mix(in srgb, var(--warn), white 92%);
  color: color-mix(in srgb, var(--warn), black 40%);
  border-radius: 6px;
  margin: 0 0 10px;
  padding: 8px 10px;
  font-size: 13px;
  line-height: 1.25;
}

.adminApprovalsRowFocused {
  animation: 2.2s ease-out adminApprovalsRowFocusFade;
}

.adminApprovalsRowFocused:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 32%);
  outline-offset: -2px;
}

.adminOperationsReviewRowFocused {
  animation: 2.2s ease-out adminApprovalsRowFocusFade;
}

.adminOperationsReviewRowFocused:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 32%);
  outline-offset: -2px;
}

@keyframes adminApprovalsRowFocusFade {
  0% {
    background: color-mix(in srgb, var(--focus), white 82%);
  }

  100% {
    background: none;
  }
}

.adminApprovalsActionLane {
  grid-template-columns: 68px 42px 42px 28px;
  justify-content: end;
  align-items: center;
  gap: 0 4px;
  margin-left: auto;
  display: grid;
}

.adminApprovalsActionLane .btn {
  flex: none;
}

.adminApprovalsActionSlot {
  justify-content: center;
  align-items: flex-start;
  min-height: 30px;
  display: inline-flex;
}

.adminApprovalsActionSlotView {
  justify-content: flex-start;
}

.adminApprovalsActionSlotMenu {
  justify-content: center;
}

.adminApprovalsQuickActionViewBtn {
  white-space: nowrap;
  border-radius: 6px;
  justify-content: center;
  width: 68px;
  min-width: 68px;
  font-size: 12px;
  font-weight: 700;
  min-height: 30px !important;
  padding: 0 8px !important;
}

.adminApprovalsQuickActionBtn {
  border-radius: 6px;
  width: 42px;
  min-width: 42px;
  min-height: 30px !important;
  padding: 0 !important;
}

.adminApprovalsQuickActionTextBtn {
  white-space: nowrap;
  border-radius: 6px;
  justify-content: center;
  width: 100%;
  min-width: 98px;
  font-weight: 700;
  min-height: 30px !important;
  padding: 0 12px !important;
}

.adminApprovalsQuickActionPairBtn {
  white-space: nowrap;
  border-radius: 8px;
  justify-content: center;
  width: 70px;
  min-width: 70px;
  font-size: 12px;
  font-weight: 700;
  min-height: 32px !important;
  padding: 0 8px !important;
}

.adminApprovalsQuickActionIcon {
  stroke: currentColor;
  width: 16px;
  height: 16px;
}

.adminApprovalsQuickActionMarkPaidBtn, .adminApprovalsQuickActionRevokeBtn {
  width: 30px !important;
  min-width: 30px !important;
  padding: 0 !important;
}

.adminApprovalsQuickActionPaidBtn {
  letter-spacing: 0;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 800;
  width: 42px !important;
  min-width: 42px !important;
  min-height: 30px !important;
  padding: 0 4px !important;
}

.adminApprovalsActionPlaceholder {
  width: 42px;
  height: 30px;
  display: inline-block;
}

.adminApprovalsMenuPlaceholder {
  width: 28px;
  height: 30px;
  display: inline-block;
}

.adminApprovalsActionSrOnly {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.adminApprovalsReportApproveIntro {
  margin: 0;
}

.adminApprovalsReportApproveList {
  gap: 8px;
  display: grid;
}

.adminApprovalsReportApproveTicketList {
  gap: 8px;
  max-height: 260px;
  padding-right: 2px;
  display: grid;
  overflow-y: auto;
}

.adminApprovalsReportApproveTicket {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  background: color-mix(in srgb, var(--bg-2), white 40%);
  border-left-width: 3px;
  border-radius: 8px;
  gap: 6px;
  padding: 8px 10px;
  display: grid;
}

.adminApprovalsReportApproveTicket.isExpense {
  border-left-color: color-mix(in srgb, var(--warn), transparent 20%);
}

.adminApprovalsReportApproveTicket.isMaterial {
  border-left-color: color-mix(in srgb, var(--ok), transparent 25%);
}

.adminApprovalsReportApproveTicket.isMisc {
  border-left-color: color-mix(in srgb, var(--focus), transparent 18%);
}

.adminApprovalsReportApproveTicketMeta {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminApprovalsReportApproveTicketDate {
  font-size: 12px;
}

.adminApprovalsReportApproveTicketStatus {
  min-height: 22px;
  padding: 0 8px;
  font-size: 12px;
}

.adminApprovalsReportApproveTicketDetail {
  gap: 2px;
  display: grid;
}

.adminApprovalsReportApproveTicketPrimary, .adminApprovalsReportApproveTicketSecondary {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.adminApprovalsReportApproveTicketPrimary {
  font-weight: 700;
  line-height: 1.2;
}

.adminApprovalsReportApproveTicketSecondary {
  font-size: 13px;
  line-height: 1.2;
}

.adminApprovalsPager {
  overflow-anchor: none;
  padding-top: 8px;
}

.adminApprovalsLoadingOverlay {
  pointer-events: none;
  background: none;
  justify-content: center;
  align-items: center;
  display: flex;
  position: absolute;
  inset: 0;
}

.adminApprovalsLoadingText {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--bg) 12%);
  background: color-mix(in srgb, var(--bg), var(--bg-2) 35%);
  border-radius: 6px;
  padding: 4px 10px;
}

.adminApprovalsPlaceholderRow {
  pointer-events: none;
}

.adminApprovalsPlaceholderRow td {
  border-bottom-color: #0000 !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
}

.adminApprovalsPlaceholderText {
  visibility: hidden;
  -webkit-user-select: none;
  user-select: none;
}

.adminOperationsActionsCell {
  text-align: right;
}

.adminOperationsActionsCell .adminDirectoryRowActions {
  justify-content: flex-end;
}

.adminListCardBody .adminApprovalsTable tbody td.adminOperationsActionsCell {
  vertical-align: middle;
}

.adminOperationsReviewActionsCell {
  text-align: right;
  width: 188px;
  min-width: 188px;
}

.adminOperationsReviewActionsCell .adminDirectoryRowActions.adminOperationsQuickActions {
  flex-wrap: nowrap;
  justify-content: flex-end;
  gap: 8px;
}

.adminOperationsReviewActionsCell .adminApprovalsQuickActionTextBtn {
  flex: none;
  width: auto;
  min-width: 98px;
}

.adminOperationsReviewPaidBtn {
  white-space: nowrap;
  border-radius: 8px;
  flex: none;
  justify-content: center;
  width: 56px;
  min-width: 56px;
  font-size: 13px;
  font-weight: 700;
  min-height: 32px !important;
  padding: 0 8px !important;
}

.adminTicketsUserCell .adminUsersNameLine, .adminTicketsUserCell .adminUsersNameMeta .muted {
  white-space: normal;
  text-overflow: clip;
  overflow: visible;
}

.adminOperationsTicketsTable {
  table-layout: fixed;
}

.adminTicketsColDate {
  width: 116px;
}

.adminTicketsColUser {
  width: 188px;
}

.adminTicketsColStatus {
  width: 162px;
}

.adminTicketsColType {
  width: 112px;
}

.adminTicketsColSite {
  width: 196px;
}

.adminTicketsColMetadata {
  width: auto;
}

.adminTicketsColActions {
  width: 116px;
}

.adminTicketsSiteCell, .adminTicketsSiteStack {
  min-width: 0;
}

.adminTicketsMetadataCell, .adminTicketsSiteCell {
  max-width: 0;
}

.adminTicketsMetadataStack {
  align-content: start;
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminTicketsMetadataHintLine {
  min-width: 0;
}

.adminTicketsMetadataRouteLine {
  align-items: baseline;
  gap: .18em;
  display: flex;
  overflow: visible;
}

.adminOperationsTimesheetsTable .adminOperationsReviewActionsCell, .adminOperationsTimesheetsTable .adminOperationsReviewActionsHeader, .adminOperationsReportsTable .adminOperationsReviewActionsCell, .adminOperationsReportsTable .adminOperationsReviewActionsHeader, .adminOperationsTicketsTable .adminOperationsReviewActionsCell, .adminOperationsTicketsTable .adminOperationsReviewActionsHeader {
  width: 116px;
  min-width: 116px;
}

.adminOperationsTimesheetsTable .adminDirectoryRowActions.adminOperationsQuickActions, .adminOperationsReportsTable .adminDirectoryRowActions.adminOperationsQuickActions, .adminOperationsTicketsTable .adminDirectoryRowActions.adminOperationsQuickActions {
  gap: 6px;
}

.adminOperationsTimesheetsTable .adminApprovalsQuickActionViewBtn, .adminOperationsReportsTable .adminApprovalsQuickActionViewBtn, .adminOperationsTicketsTable .adminApprovalsQuickActionViewBtn {
  width: 60px;
  min-width: 60px;
  padding: 0 6px !important;
}

.adminTicketsClampText {
  white-space: nowrap;
  text-overflow: ellipsis;
  display: block;
  overflow: hidden;
}

@media (max-width: 1360px) {
  .adminTimesheetsColPeriod {
    width: 120px;
  }

  .adminTimesheetsColUser {
    width: 194px;
  }

  .adminTimesheetsColStatus {
    width: 150px;
  }

  .adminTimesheetsColWorked, .adminTimesheetsColActions {
    width: 108px;
  }

  .adminTicketsColUser {
    width: 170px;
  }

  .adminTicketsColStatus {
    width: 150px;
  }

  .adminTicketsColType {
    width: 102px;
  }

  .adminTicketsColSite {
    width: 176px;
  }

  .adminOperationsTimesheetsTable .adminOperationsReviewActionsCell, .adminOperationsTimesheetsTable .adminOperationsReviewActionsHeader, .adminOperationsReportsTable .adminOperationsReviewActionsCell, .adminOperationsReportsTable .adminOperationsReviewActionsHeader, .adminOperationsTicketsTable .adminOperationsReviewActionsCell, .adminOperationsTicketsTable .adminOperationsReviewActionsHeader {
    width: 108px;
    min-width: 108px;
  }

  .adminOperationsTimesheetsTable .adminApprovalsQuickActionViewBtn, .adminOperationsReportsTable .adminApprovalsQuickActionViewBtn, .adminOperationsTicketsTable .adminApprovalsQuickActionViewBtn {
    width: 56px;
    min-width: 56px;
    font-size: 11px;
  }

  .adminDayOffColDate {
    width: 160px;
  }

  .adminDayOffColUser {
    width: 176px;
  }

  .adminDayOffColActions {
    width: 184px;
  }

  .adminOperationsDayOffTable .adminOperationsReviewActionsCell, .adminOperationsDayOffTable .adminOperationsReviewActionsHeader {
    width: 184px;
    min-width: 184px;
  }
}

@media (max-width: 1220px) {
  .adminTimesheetsColPeriod {
    width: 112px;
  }

  .adminTimesheetsColUser {
    width: 176px;
  }

  .adminTimesheetsColStatus {
    width: 138px;
  }

  .adminTimesheetsColWorked {
    width: 100px;
  }

  .adminTimesheetsColActions {
    width: 102px;
  }

  .adminTicketsColDate {
    width: 108px;
  }

  .adminTicketsColUser {
    width: 156px;
  }

  .adminTicketsColStatus {
    width: 138px;
  }

  .adminTicketsColType {
    width: 92px;
  }

  .adminTicketsColSite {
    width: 160px;
  }

  .adminOperationsTimesheetsTable .adminOperationsReviewActionsCell, .adminOperationsTimesheetsTable .adminOperationsReviewActionsHeader, .adminOperationsReportsTable .adminOperationsReviewActionsCell, .adminOperationsReportsTable .adminOperationsReviewActionsHeader, .adminOperationsTicketsTable .adminOperationsReviewActionsCell, .adminOperationsTicketsTable .adminOperationsReviewActionsHeader {
    width: 102px;
    min-width: 102px;
  }

  .adminOperationsTimesheetsTable .adminApprovalsQuickActionViewBtn, .adminOperationsReportsTable .adminApprovalsQuickActionViewBtn, .adminOperationsTicketsTable .adminApprovalsQuickActionViewBtn {
    width: 52px;
    min-width: 52px;
  }

  .adminDayOffColDate {
    width: 150px;
  }

  .adminDayOffColUser {
    width: 164px;
  }

  .adminDayOffColActions {
    width: 170px;
  }

  .adminOperationsDayOffTable .adminOperationsReviewActionsCell, .adminOperationsDayOffTable .adminOperationsReviewActionsHeader {
    width: 170px;
    min-width: 170px;
  }
}

.adminOperationsDayOffTable {
  table-layout: fixed;
}

.adminDayOffColDate {
  width: 170px;
}

.adminDayOffColUser {
  width: 188px;
}

.adminDayOffColStatus {
  width: auto;
}

.adminDayOffColActions {
  width: 188px;
}

.adminOperationsDayOffTable .adminOperationsReviewActionsCell, .adminOperationsDayOffTable .adminOperationsReviewActionsHeader {
  width: 188px;
  min-width: 188px;
}

.adminOperationsGeoTable {
  table-layout: fixed;
  min-width: 980px;
}

.adminOperationsGeoPage {
  gap: 18px;
}

.adminOperationsGeoResultsCard {
  box-shadow: none;
  background: none;
  border: 0;
}

.adminOperationsGeoResultsBody {
  gap: 12px;
  padding: 0;
}

.adminOperationsGeoResultsBody > .adminEmptyText {
  margin-top: 0;
}

.adminGeoTableWrap {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 22%);
  padding-top: 4px;
}

.adminOperationsGeoResultsBody .adminOperationsGeoTable thead th {
  text-transform: uppercase;
  letter-spacing: .05em;
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  font-size: 12px;
}

.adminGeoColDate {
  width: 124px;
}

.adminGeoColWorkers {
  width: 170px;
}

.adminGeoColWorked, .adminGeoColOffsite {
  width: 118px;
}

.adminGeoColEvents {
  width: 92px;
}

.adminGeoColSites {
  width: auto;
  min-width: 0;
}

.adminGeoColActions {
  width: 188px;
}

.adminGeoSortHeaderBtn {
  font: inherit;
  color: inherit;
  cursor: pointer;
  background: none;
  border: 0;
  align-items: center;
  gap: 6px;
  margin: 0;
  padding: 0;
  font-weight: 700;
  display: inline-flex;
}

.adminGeoSortHeaderBtn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 30%);
  outline-offset: 2px;
  border-radius: 4px;
}

.adminGeoSortHeaderIcon {
  border-left: 4px solid #0000;
  border-right: 4px solid #0000;
  border-top: 6px solid color-mix(in srgb, var(--fg), transparent 36%);
  opacity: .62;
  block-size: 0;
  inline-size: 0;
  transform: translateY(1px);
}

.adminGeoSortHeaderIcon.isActive {
  border-top-color: color-mix(in srgb, var(--fg), transparent 8%);
  opacity: 1;
}

.adminGeoSortHeaderIcon.isAsc {
  transform: rotate(180deg)translateY(1px);
}

.adminGeoWorkersMain {
  font-weight: 700;
  display: block;
}

.adminGeoWorkersSub {
  margin-top: 2px;
  font-size: 12px;
  display: block;
}

.adminGeoWorkersSubAlert {
  color: color-mix(in srgb, var(--danger), black 18%);
  font-weight: 600;
}

.adminGeoMetricWarn {
  color: color-mix(in srgb, var(--danger), black 18%);
  font-weight: 700;
}

.adminGeoSitesLine {
  white-space: nowrap;
  text-overflow: ellipsis;
  flex-wrap: nowrap;
  align-items: center;
  gap: 6px;
  display: flex;
  overflow: hidden;
}

.adminGeoSitesEmpty {
  display: block;
}

.adminGeoSitesSep {
  color: color-mix(in srgb, var(--muted), transparent 14%);
}

.adminGeoSiteCodeLink {
  color: inherit;
  border-bottom: 1px dotted #0000;
  text-decoration: none;
}

.adminGeoSiteCodeLink:hover {
  border-bottom-color: color-mix(in srgb, var(--fg), transparent 48%);
}

.adminGeoSiteCodeLink:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 30%);
  outline-offset: 2px;
  border-radius: 4px;
}

.adminGeoSiteOverflowBtn {
  font: inherit;
  color: color-mix(in srgb, var(--muted), black 18%);
  cursor: pointer;
  background: none;
  border: 0;
  margin: 0;
  padding: 0;
  font-size: 14px;
  line-height: 1;
}

.adminGeoSiteOverflowBtn:hover {
  color: inherit;
}

.adminGeoSiteOverflowBtn:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 30%);
  outline-offset: 2px;
  border-radius: 4px;
}

.adminGeoDetailRow td {
  background: #fff;
}

.adminGeoDetailPanel {
  gap: 12px;
  padding: 8px 0 4px;
  display: grid;
}

.adminGeoDetailSummaryGrid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 8px;
  display: grid;
}

.adminGeoDetailSummaryStat {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 14%);
  background: #fff;
  border-radius: 8px;
  gap: 2px;
  padding: 8px 10px;
  display: grid;
}

.adminGeoDetailSummaryStatWarn {
  border-color: color-mix(in srgb, var(--danger), transparent 58%);
  background: color-mix(in srgb, var(--danger), white 93%);
}

.adminGeoDetailSummaryValue {
  font-size: 16px;
  font-weight: 700;
  line-height: 1.1;
}

.adminGeoDetailSummaryLabel {
  text-transform: uppercase;
  letter-spacing: .02em;
  color: color-mix(in srgb, var(--muted), var(--fg) 14%);
  font-size: 11px;
  line-height: 1.1;
}

.adminGeoDetailLayout {
  grid-template-columns: 1fr;
  gap: 10px;
  display: grid;
}

.adminGeoPlaybackPanel {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 14%);
  background: #fff;
  border-radius: 8px;
  gap: 8px;
  padding: 10px 12px;
  display: grid;
}

.adminGeoPlaybackHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminGeoPlaybackTitle {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

.adminGeoPlaybackMeta {
  margin: 0;
  font-size: 12px;
}

.adminGeoPlaybackControls {
  grid-template-columns: auto minmax(140px, 1fr) auto;
  align-items: center;
  gap: 8px;
  display: grid;
}

.adminGeoPlaybackTransport {
  align-items: center;
  gap: 4px;
  display: inline-flex;
}

.adminGeoPlaybackTransportBtn {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 2%);
  background: color-mix(in srgb, var(--bg), white 70%);
  width: 26px;
  min-width: 26px;
  height: 26px;
  color: color-mix(in srgb, var(--fg), black 8%);
  cursor: pointer;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.adminGeoPlaybackTransportBtn:hover:not(:disabled) {
  border-color: color-mix(in srgb, var(--focus), transparent 28%);
  background: color-mix(in srgb, var(--focus), white 94%);
}

.adminGeoPlaybackTransportBtn:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.adminGeoPlaybackTransportBtnMain {
  border-color: color-mix(in srgb, var(--focus), transparent 25%);
  background: color-mix(in srgb, var(--focus), white 91%);
  border-radius: 7px;
  width: 28px;
  min-width: 28px;
  height: 28px;
}

.adminGeoPlaybackTransportIcon {
  width: 13px;
  height: 13px;
}

.adminGeoPlaybackSlider {
  block-size: 20px;
  inline-size: 100%;
  accent-color: var(--focus);
}

.adminGeoPlaybackCurrentTime {
  white-space: nowrap;
  color: color-mix(in srgb, var(--muted), var(--fg) 12%);
  font-size: 12px;
  line-height: 1;
}

.adminGeoPlaybackWindow {
  color: color-mix(in srgb, var(--muted), var(--fg) 12%);
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  display: grid;
}

.adminGeoPlaybackWindowCenter {
  text-align: center;
  color: color-mix(in srgb, var(--muted), var(--fg) 20%);
}

.adminGeoPlaybackSnapshot {
  flex-wrap: wrap;
  gap: 6px;
  display: flex;
}

.adminGeoPlaybackSnapshotChip {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 60%);
  cursor: pointer;
  appearance: none;
  min-height: 22px;
  color: inherit;
  border-radius: 999px;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 12px;
  line-height: 1.2;
  display: inline-flex;
}

.adminGeoPlaybackSnapshotChip strong {
  font-weight: 700;
}

.adminGeoPlaybackSnapshotChipInactive {
  opacity: .48;
  border-style: dashed;
}

.adminGeoPlaybackSnapshotChipWarn {
  border-color: color-mix(in srgb, var(--danger), transparent 52%);
  background: color-mix(in srgb, var(--danger), white 93%);
  color: color-mix(in srgb, var(--danger), black 18%);
}

.adminGeoPlaybackMapShell {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 30%);
  border-radius: 8px;
  position: relative;
  overflow: hidden;
}

.adminGeoPlaybackWheelHint {
  z-index: 530;
}

.adminGeoPlaybackMapCanvas {
  min-block-size: 300px;
  inline-size: 100%;
}

.adminGeoPlaybackMapCanvas .leaflet-container {
  block-size: 300px;
  inline-size: 100%;
}

.adminGeoPlaybackMapCanvas .leaflet-control-attribution {
  font-size: 10px;
}

.adminGeoPlaybackMapCanvas .leaflet-attribution-flag {
  display: none !important;
}

.adminGeoPlaybackLegend {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  max-block-size: 124px;
  padding-right: 2px;
  display: grid;
  overflow: auto;
}

.adminGeoPlaybackLegendItem {
  min-height: 22px;
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  background: color-mix(in srgb, var(--bg-2), white 60%);
  border-radius: 999px;
  align-items: center;
  gap: 6px;
  max-inline-size: 100%;
  padding: 2px 8px;
  display: inline-flex;
}

.adminGeoPlaybackLegendItemCurrent {
  border-color: color-mix(in srgb, var(--focus), transparent 24%);
  background: color-mix(in srgb, var(--focus), white 93%);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--focus), transparent 52%);
}

.adminGeoPlaybackLegendDot {
  border-radius: 999px;
  flex: none;
  block-size: 8px;
  inline-size: 8px;
}

.adminGeoPlaybackLegendText {
  gap: 1px;
  min-width: 0;
  display: grid;
}

.adminGeoPlaybackLegendName {
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.15;
  overflow: hidden;
}

.adminGeoPlaybackLegendMeta {
  color: color-mix(in srgb, var(--muted), var(--fg) 10%);
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 11px;
  line-height: 1.1;
  overflow: hidden;
}

.adminGeoPlaybackLegendItemCurrent .adminGeoPlaybackLegendMeta {
  color: color-mix(in srgb, var(--focus), var(--fg) 36%);
  font-weight: 600;
}

.adminGeoPlaybackLegendMore {
  border: 1px dashed color-mix(in srgb, var(--stroke), transparent 16%);
  min-height: 22px;
  color: var(--muted);
  border-radius: 999px;
  align-items: center;
  padding: 2px 8px;
  font-size: 12px;
  display: inline-flex;
}

.adminGeoPlaybackMarkerIcon {
  background: none !important;
  border: 0 !important;
}

.adminGeoPlaybackMarkerPin {
  background: var(--geo-pin, var(--focus));
  color: #fff;
  block-size: 28px;
  inline-size: 28px;
  box-shadow: 0 1px 4px color-mix(in srgb, var(--fg), transparent 72%);
  border: 2px solid #fff;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  display: inline-flex;
}

.adminGeoPlaybackMarkerPinAvatar {
  background: color-mix(in srgb, var(--geo-pin, var(--focus)), white 84%);
  overflow: hidden;
}

.adminGeoPlaybackMarkerAvatar {
  object-fit: cover;
  border-radius: 999px;
  block-size: 100%;
  inline-size: 100%;
  display: block;
}

.adminGeoPlaybackMarkerPinFallback {
  background: var(--geo-pin, var(--focus));
  color: #fff;
  justify-content: center;
  align-items: center;
  block-size: 100%;
  inline-size: 100%;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
  display: none;
}

.adminGeoPlaybackPopup p {
  margin: 0 0 4px;
  font-size: 12px;
  line-height: 1.25;
}

.adminGeoPlaybackPopup p:last-child {
  margin-bottom: 0;
}

.adminGeoPlaybackPopupTitle {
  font-weight: 700;
  font-size: 13px !important;
}

.adminGeoPlaybackPopupUser {
  color: var(--muted);
}

.adminGeoWorkersPanel {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 14%);
  background: #fff;
  border-radius: 8px;
  gap: 10px;
  padding: 12px 14px;
  display: grid;
}

.adminGeoWorkersPanelHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 8px;
  display: flex;
}

.adminGeoWorkersPanelHeaderMain {
  gap: 2px;
  display: grid;
}

.adminGeoWorkersPanelTitle {
  margin: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
}

.adminGeoWorkersPanelHint {
  margin: 0;
  font-size: 12px;
}

.adminGeoWorkersToggleBtn {
  border-radius: 8px;
  font-size: 12px;
  font-weight: 700;
  min-height: 28px !important;
  padding: 0 10px !important;
}

.adminGeoWorkersTableWrap {
  overflow: visible;
}

.adminGeoWorkersTable {
  table-layout: fixed;
  border-collapse: collapse;
  background: #fff;
  inline-size: 100%;
  font-size: 13px;
}

.adminGeoWorkersColUser {
  width: 182px;
}

.adminGeoWorkersColStatus {
  width: 116px;
}

.adminGeoWorkersColTime {
  width: 122px;
}

.adminGeoWorkersColEvents {
  width: 156px;
}

.adminGeoWorkersColSites {
  width: 220px;
}

.adminGeoWorkersColAnomalies {
  width: 164px;
}

.adminGeoWorkersTable thead th {
  z-index: 1;
  background: color-mix(in srgb, var(--bg-2), white 78%);
  text-align: left;
  text-transform: uppercase;
  letter-spacing: .045em;
  color: color-mix(in srgb, var(--muted), var(--fg) 16%);
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  padding: 8px 10px;
  font-size: 11px;
  position: sticky;
  top: 0;
}

.adminGeoWorkersTable tbody td {
  border-bottom: 1px solid color-mix(in srgb, var(--stroke), transparent 16%);
  vertical-align: top;
  padding: 9px 10px;
}

.adminGeoWorkersTable tbody tr:last-child td {
  border-bottom: 0;
}

.adminGeoWorkersTable tbody tr:hover td {
  background: color-mix(in srgb, var(--focus), white 96%);
}

.adminGeoWorkerRowWarn td {
  border-bottom-color: color-mix(in srgb, var(--danger), transparent 84%);
  background: #fff;
}

.adminGeoWorkerRowWarn td:first-child {
  box-shadow: inset 4px 0 0 color-mix(in srgb, var(--danger), transparent 30%);
}

.adminGeoWorkerNameStack {
  gap: 2px;
}

.adminGeoWorkerNamePrimary {
  font-size: 14px;
  font-weight: 600;
  line-height: 1.2;
}

.adminGeoWorkerNameSecondary {
  font-size: 12px;
  line-height: 1.15;
}

.adminGeoWorkerStatusCell .pill {
  min-height: 28px;
  padding: 0 10px;
  font-size: 12px;
}

.adminGeoWorkerCellMetric {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-weight: 600;
}

.adminGeoWorkerCellTimeStack {
  gap: 2px;
  display: grid;
}

.adminGeoWorkerCellTimeMain {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  font-weight: 700;
  line-height: 1.2;
}

.adminGeoWorkerCellTimeSub {
  color: var(--muted);
  white-space: nowrap;
  font-size: 11px;
  line-height: 1.15;
}

.adminGeoWorkerCellTimeSubWarn {
  color: color-mix(in srgb, var(--danger), black 18%);
  font-weight: 600;
}

.adminGeoWorkerCellEventsStack {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminGeoWorkerCellRange {
  white-space: nowrap;
  color: color-mix(in srgb, var(--muted), var(--fg) 10%);
  font-size: 11px;
}

.adminGeoWorkerHoverHint {
  align-items: baseline;
  max-width: 100%;
  display: inline-flex;
}

.adminGeoWorkerCellSitesStack {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminGeoWorkerSitesLine {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  min-width: 0;
  display: flex;
}

.adminGeoWorkerSitesSep {
  color: color-mix(in srgb, var(--muted), transparent 16%);
}

.adminGeoWorkerCellSitesPrimary {
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  text-overflow: ellipsis;
  font-weight: 600;
  overflow: hidden;
}

.adminGeoWorkerCellSitesSecondary {
  color: color-mix(in srgb, var(--muted), var(--fg) 12%);
  font-size: 11px;
  line-height: 1.15;
}

.adminGeoWorkerCellAnomaliesNone {
  font-size: 11px;
  line-height: 1.15;
}

.adminGeoWorkerCellAnomalies {
  min-width: 0;
}

.adminGeoSignals {
  flex-wrap: wrap;
  gap: 4px;
  display: inline-flex;
}

.adminGeoSignalChip {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  white-space: nowrap;
  background: #fff;
  border-radius: 999px;
  align-items: center;
  min-height: 20px;
  padding: 1px 7px;
  font-size: 11px;
  line-height: 1.15;
  display: inline-flex;
}

.adminGeoSignalChipWarn {
  border-color: color-mix(in srgb, var(--danger), transparent 62%);
  background: color-mix(in srgb, var(--danger), white 94%);
  color: color-mix(in srgb, var(--danger), black 20%);
  font-weight: 600;
}

.adminGeoSignalChipInfo {
  border-color: color-mix(in srgb, var(--focus), transparent 72%);
  background: color-mix(in srgb, var(--focus), white 95%);
  color: color-mix(in srgb, var(--focus), black 20%);
}

.adminGeoInlineEmpty {
  margin: 4px 0;
}

@media (max-width: 1320px) {
  .adminOperationsGeoTable {
    min-width: 920px;
  }

  .adminGeoColWorkers {
    width: 154px;
  }

  .adminGeoColWorked, .adminGeoColOffsite {
    width: 104px;
  }

  .adminGeoColEvents {
    width: 78px;
  }

  .adminGeoColActions {
    width: 152px;
  }

  .adminGeoWorkersColUser {
    width: 164px;
  }

  .adminGeoWorkersColStatus {
    width: 104px;
  }

  .adminGeoWorkersColTime, .adminGeoWorkersColEvents {
    width: 114px;
  }

  .adminGeoWorkersColSites {
    width: 180px;
  }

  .adminGeoWorkersColAnomalies {
    width: 148px;
  }
}

@media (max-width: 900px) {
  .adminGeoPlaybackControls, .adminGeoPlaybackWindow {
    grid-template-columns: 1fr;
    justify-items: start;
  }

  .adminGeoPlaybackWindowCenter {
    text-align: left;
  }

  .adminGeoPlaybackCurrentTime {
    font-size: 11px;
  }

  .adminGeoPlaybackMapCanvas {
    min-block-size: 220px;
  }

  .adminGeoPlaybackMapCanvas .leaflet-container {
    block-size: 220px;
  }

  .adminGeoPlaybackLegend {
    grid-template-columns: 1fr;
    max-block-size: 138px;
  }

  .adminGeoWorkersToggleBtn {
    width: 100%;
  }

  .adminGeoWorkersTable {
    min-width: 720px;
  }

  .adminGeoWorkersTableWrap {
    overflow: auto visible;
  }
}

.adminOperationsDayOffDetailBody {
  gap: 14px;
  display: grid;
}

.adminOperationsDayOffDetailHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.adminOperationsDayOffDetailMetaGrid {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
  display: grid;
}

.adminOperationsDayOffDetailMetaItem {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: #fff;
  gap: 4px;
  padding: 10px 12px;
  display: grid;
}

.adminOperationsDayOffReasonCard {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 20%);
  gap: 6px;
  padding: 10px 12px;
  display: grid;
}

.adminOperationsDayOffReasonText {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 0;
  line-height: 1.4;
}

.adminOperationsEditorPage, .adminOperationsReadOnlyPage {
  gap: 12px;
  display: grid;
}

.adminOperationsReadOnlyPage > .card, .adminOperationsReadOnlyPage > .timesheetDayEditorShell {
  border-color: color-mix(in srgb, var(--focus), transparent 72%);
  background: color-mix(in srgb, var(--focus), white 97%);
  box-shadow: none;
  overflow: hidden;
}

.adminOperationsEditorSectionBody {
  gap: 12px;
  display: grid;
}

.adminOperationsEditorHeaderBlock {
  gap: 10px;
  display: grid;
}

.adminOperationsEditorHeaderTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminOperationsEditorTimeline {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 8px;
  display: grid;
}

.adminOperationsEditorReadOnlyBanner {
  border-color: color-mix(in srgb, var(--focus), transparent 55%);
  background: color-mix(in srgb, var(--focus), white 94%);
  width: fit-content;
  max-width: 100%;
  min-height: 38px;
  color: color-mix(in srgb, var(--focus), black 18%);
  place-self: start;
  gap: 8px;
  padding: 6px 12px;
}

.adminOperationsEditorReadOnlyMark {
  border: 1px solid;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  width: 18px;
  height: 18px;
  display: inline-flex;
}

.adminOperationsEditorActionsBlock {
  gap: 10px;
  display: grid;
}

.adminOperationsReadOnlyTopBar {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  display: grid;
}

.adminOperationsReadOnlyTopStatus {
  place-self: start end;
}

.adminOperationsReadOnlyPortalBadgeRow {
  justify-items: start;
  display: grid;
}

.reportDetailHeroCard {
  border-color: color-mix(in srgb, var(--stroke), var(--focus) 18%);
  background: color-mix(in srgb, var(--bg), var(--focus) 4%);
}

.reportReadOnlyHeroCard, .ticketsReadOnlyHeroCard {
  border-color: color-mix(in srgb, var(--stroke), var(--focus) 16%);
  background: color-mix(in srgb, white, var(--focus) 4%);
}

.portalDetailHeroBody {
  gap: 16px;
  display: grid;
  padding: 20px !important;
}

.reportReadOnlyHeroBody, .ticketsReadOnlyHeroBody {
  gap: 14px;
  padding: 18px !important;
}

.portalDetailHeroTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  display: flex;
}

.portalDetailHeroTitleBlock {
  gap: 10px;
  min-width: 0;
  display: grid;
}

.reportReadOnlyHeroTitleBlock, .ticketsReadOnlyHeroTitleBlock {
  flex: auto;
  max-width: min(100%, 720px);
}

.portalDetailKicker {
  letter-spacing: .1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted), var(--fg) 20%);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

.portalDetailHeroTitleRow {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 12px;
  display: flex;
}

.portalDetailHeroCode {
  color: color-mix(in srgb, var(--focus), black 10%);
  font-size: 13px;
  line-height: 1.1;
}

.portalDetailHeroTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  margin: 0;
  font-size: clamp(26px, 2.4vw, 34px);
  line-height: 1;
}

.portalDetailHeroAside {
  justify-items: end;
  gap: 10px;
  display: grid;
}

.portalDetailStatusPill {
  white-space: nowrap;
  min-height: 38px;
  padding-left: 14px;
  padding-right: 14px;
}

.reportReadOnlyStatusPill {
  min-height: 34px;
  padding-left: 12px;
  padding-right: 12px;
}

.portalDetailFieldGrid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.portalDetailField {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, var(--bg-2), white 45%);
  gap: 6px;
  min-width: 0;
  padding: 12px 13px;
  display: grid;
}

.reportReadOnlyFieldGrid .portalDetailField, .ticketsReadOnlyFieldGrid .portalDetailField {
  background: #fff;
}

.portalDetailFieldLabel {
  letter-spacing: .08em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--muted), var(--fg) 22%);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
}

.portalDetailFieldValue {
  min-width: 0;
  color: color-mix(in srgb, var(--fg), black 10%);
  overflow-wrap: anywhere;
  font-size: 15px;
  line-height: 1.35;
}

.portalDetailFieldValue.isMono {
  font-family: var(--font-mono);
}

.portalDetailContentCard {
  background: color-mix(in srgb, var(--bg), white 18%);
}

.reportReadOnlyContentCard, .reportReadOnlyContentCard .portalDetailListRow, .reportReadOnlyContentCard .portalDetailTextBlock, .ticketsReadOnlyContentCard, .ticketsReadOnlyContentCard .portalDetailListRow, .ticketsReadOnlyContentCard .portalDetailTextBlock, .ticketsReadOnlyContentCard .ticketsAttachmentPreviewBtn {
  background: color-mix(in srgb, white, var(--focus) 4%);
}

.reportReadOnlyContentCard .portalDetailListRow, .reportReadOnlyContentCard .portalDetailTextBlock, .ticketsReadOnlyContentCard .portalDetailListRow, .ticketsReadOnlyContentCard .portalDetailTextBlock, .ticketsReadOnlyContentCard .ticketsAttachmentPreviewBtn {
  background: #fff;
}

.portalDetailContentBody {
  gap: 0;
  display: grid;
  padding: 0 !important;
}

.portalDetailSection {
  gap: 12px;
  padding: 18px 20px;
  display: grid;
}

.portalDetailSection + .portalDetailSection {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
}

.portalDetailSectionHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.portalDetailList {
  gap: 8px;
  display: grid;
}

.portalDetailListRow {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, var(--bg-2), white 48%);
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  display: grid;
}

.portalDetailListTitle {
  min-width: 0;
  font-weight: 700;
  line-height: 1.3;
}

.portalDetailListValue {
  flex: none;
  font-size: 15px;
  line-height: 1.1;
}

.ticketQuantityValue {
  grid-template-columns: 5.5ch 7ch;
  justify-content: end;
  align-items: baseline;
  column-gap: .7ch;
  display: inline-grid;
}

.ticketQuantityAmount {
  text-align: right;
  font-variant-numeric: tabular-nums;
  min-width: 0;
}

.ticketQuantityUnit {
  text-align: right;
  white-space: nowrap;
  min-width: 0;
}

.portalDetailTextBlock {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, var(--bg-2), white 48%);
  white-space: pre-wrap;
  margin: 0;
  padding: 14px 16px;
  line-height: 1.55;
}

.portalDetailEmpty {
  margin: 0;
}

.reportDetailTaskRow.isTotal {
  border-color: color-mix(in srgb, var(--focus), transparent 48%);
  background: #fff;
}

.reportDetailTaskRow.isTotal .portalDetailListTitle, .reportDetailTaskRow.isTotal .portalDetailListValue {
  color: color-mix(in srgb, var(--focus), black 18%);
}

.ticketsReadOnlyFieldGrid.isExpense, .ticketsReadOnlyFieldGrid.isMisc, .ticketsReadOnlyFieldGrid.isMaterial {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.ticketsReadOnlyFieldGrid .ticketsReadOnlyFieldReport, .ticketsReadOnlyFieldGrid > .portalDetailField:last-child:nth-child(odd) {
  grid-column: 1 / -1;
}

.ticketsReadOnlyCombinedField {
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: start;
  gap: 12px;
  display: grid;
}

.ticketsReadOnlyCombinedFieldBlock {
  gap: 6px;
  min-width: 0;
  display: grid;
}

.ticketsReadOnlyCombinedFieldDivider {
  background: color-mix(in srgb, var(--stroke), transparent 10%);
  align-self: stretch;
  width: 1px;
}

.ticketsReadOnlyAttachmentGrid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
}

.ticketsReportIdLink {
  color: inherit;
  text-decoration: none;
}

.ticketsReportIdLink:hover {
  text-decoration: underline;
}

.adminOperationsDetailGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  display: grid;
}

.adminOperationsDetailGridWide {
  grid-template-columns: minmax(220px, .7fr) minmax(0, 1fr);
}

.adminOperationsDetailField {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 6%);
  border-radius: var(--radius);
  background: #fff;
  gap: 5px;
  min-width: 0;
  padding: 10px 12px;
  display: grid;
}

.adminOperationsDetailFieldWide {
  grid-column: 1 / -1;
}

.adminOperationsDetailFieldNote {
  gap: 6px;
}

.adminOperationsDetailValue {
  overflow-wrap: anywhere;
  min-width: 0;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
}

.adminOperationsDetailNote {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  min-height: 76px;
  color: var(--fg);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: #fff;
  padding: 10px 12px;
  line-height: 1.45;
}

.adminOperationsDetailNotePlain {
  min-height: 76px;
  color: var(--fg);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  background: none;
  border: 0;
  padding: 0;
}

.adminOperationsReadOnlySectionTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminOperationsReadOnlyMetric {
  border-color: color-mix(in srgb, var(--focus), transparent 56%);
  background: color-mix(in srgb, var(--focus), white 94%);
  min-height: 32px;
  color: color-mix(in srgb, var(--focus), black 18%);
  padding: 4px 10px;
}

.adminOperationsReadOnlyList {
  gap: 8px;
  display: grid;
}

.adminOperationsReadOnlyListRow {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 8%);
  border-radius: var(--radius);
  background: #fff;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  padding: 10px 12px;
  display: grid;
}

.adminOperationsReadOnlyListPrimary, .adminOperationsReadOnlyListSecondary {
  min-width: 0;
}

.adminOperationsReadOnlyListPrimary {
  overflow-wrap: anywhere;
  font-weight: 600;
}

.adminOperationsReadOnlyListSecondary {
  color: var(--muted);
  text-align: right;
}

.adminOperationsEditorGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.adminOperationsEditorGridSpan2 {
  grid-column: span 2;
}

.adminOperationsEditorMetaLine, .adminOperationsEditorSectionTitle {
  margin: 0;
}

.reportEditorContextBody {
  gap: 10px;
  display: grid;
}

.adminOperationsReadOnlyReportPage .reportEditorContextCard, .adminOperationsReadOnlyReportPage .reportEditorTasksCard, .adminOperationsReadOnlyReportPage .reportEditorTicketsCard {
  border-color: color-mix(in srgb, var(--focus), transparent 74%);
  background: color-mix(in srgb, var(--bg-2), white 42%);
}

.reportEditorContextHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  display: flex;
}

.reportEditorTitleBlock {
  gap: 8px;
  min-width: 0;
  display: grid;
}

.reportEditorContextSite {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  display: inline-flex;
}

.reportEditorContextSiteCode {
  color: color-mix(in srgb, var(--focus), black 8%);
}

.reportEditorContextIdentity {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.reportEditorContextIdentity .label {
  margin: 0;
}

.reportEditorCreatedByMeta {
  margin-top: 0;
}

.reportSectionTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  margin: 0;
  font-size: 22px;
}

.reportEditorStatusPill {
  justify-content: center;
  align-items: center;
  min-width: 132px;
  min-height: 42px;
  display: inline-flex;
}

.reportWorkerContextBody {
  gap: 12px;
}

.reportWorkerFieldGrid {
  grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
  align-items: end;
  gap: 10px;
  display: grid;
}

.reportWorkerSiteField {
  min-width: 0;
}

.reportEditorSectionBody, .reportWorkerTasksBody {
  gap: 10px;
  display: grid;
}

.reportWorkerTaskHeaderRow {
  grid-template-columns: minmax(0, 1fr) 160px 44px;
  align-items: end;
  gap: 8px;
  display: grid;
}

.reportWorkerTaskHeaderRow .label {
  margin: 0;
}

.reportWorkerTaskList {
  gap: 8px;
  display: grid;
}

.reportWorkerTaskRow {
  grid-template-columns: minmax(0, 1fr) 160px 44px;
  align-items: end;
  gap: 8px;
  display: grid;
}

.reportWorkerTaskNameField, .reportWorkerTaskHoursField {
  min-width: 0;
  margin: 0;
}

.reportWorkerTaskHoursField {
  grid-template-columns: 34px minmax(0, 1fr) 34px;
  align-items: center;
  gap: 6px;
  display: grid;
}

.reportWorkerTaskHoursInput {
  text-align: center;
}

.reportWorkerTaskStepBtn {
  min-width: 34px;
  min-height: 44px;
  padding: 0;
  font-size: 16px;
  font-weight: 700;
  line-height: 1;
}

.reportWorkerTaskRow .input.isError {
  border-color: color-mix(in srgb, var(--warn), transparent 25%);
}

.reportWorkerTaskRemoveBtn {
  min-width: 44px;
  min-height: 44px;
  padding: 0;
}

.reportWorkerAddTaskBtn {
  justify-self: start;
}

.reportWorkerTotalRow {
  grid-template-columns: minmax(0, 1fr) 160px 44px;
  align-items: end;
  gap: 8px;
  display: grid;
}

.reportWorkerTotalHoursCol {
  justify-items: end;
  gap: 2px;
  display: grid;
}

.reportWorkerTotalValue {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.reportWorkerTicketsSectionBody {
  gap: 10px;
  display: grid;
}

.reportTicketsAttachList {
  gap: 8px;
  display: grid;
}

.reportTicketsAttachItem {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  border-left: 3px solid color-mix(in srgb, var(--stroke), transparent 18%);
  background: #fff;
  border-radius: 2px;
  grid-template-columns: 250px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  display: grid;
}

.reportTicketsAttachItem.isExpense {
  border-left-color: #c68625d1;
}

.reportTicketsAttachItem.isMaterial {
  border-left-color: color-mix(in srgb, var(--ok), transparent 20%);
}

.reportTicketsAttachItem.isMisc {
  border-left-color: color-mix(in srgb, var(--focus), transparent 20%);
}

.reportTicketsAttachMeta {
  align-items: center;
  gap: 8px;
  width: 100%;
  min-width: 0;
  display: flex;
}

.reportTicketsAttachDate {
  color: var(--muted);
  flex: none;
  font-size: 12px;
  line-height: 1.2;
}

.reportTicketsAttachTypeToken {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 10%);
  background: color-mix(in srgb, var(--bg-2), white 40%);
  letter-spacing: .01em;
  text-overflow: ellipsis;
  white-space: nowrap;
  border-radius: 999px;
  align-items: center;
  min-width: 0;
  max-width: 160px;
  min-height: 20px;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.2;
  display: inline-flex;
  overflow: hidden;
}

.reportTicketsAttachTypeToken.isExpense {
  background: #faf5ee;
  border-color: #c686258c;
}

.reportTicketsAttachTypeToken.isMaterial {
  border-color: color-mix(in srgb, var(--ok), transparent 50%);
  background: color-mix(in srgb, var(--ok), white 93%);
}

.reportTicketsAttachTypeToken.isMisc {
  border-color: color-mix(in srgb, var(--focus), transparent 50%);
  background: color-mix(in srgb, var(--focus), white 93%);
}

.reportTicketsAttachDetail {
  grid-template-rows: auto auto;
  gap: 2px;
  min-width: 0;
  display: grid;
}

.reportTicketsAttachDetailPrimary {
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
}

.reportTicketsAttachDetailSecondary {
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 12px;
  line-height: 1.15;
  overflow: hidden;
}

.reportTicketsAttachDetailSecondary.isEmpty {
  visibility: hidden;
}

.reportTicketsAttachRowEnd {
  flex: none;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  display: inline-flex;
}

.reportTicketsAttachPhotosToken {
  border: 1px solid color-mix(in srgb, var(--focus), transparent 55%);
  background: color-mix(in srgb, var(--focus), white 95%);
  min-height: 20px;
  color: color-mix(in srgb, var(--focus), black 24%);
  border-radius: 999px;
  align-items: center;
  padding: 0 8px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  display: inline-flex;
}

.reportTicketsAttachPhotosTokenInline {
  display: none;
}

.reportTicketsAttachViewBtn {
  min-width: 72px;
  min-height: 36px;
}

.reportTicketsAttachEmptySelected {
  margin: 0;
}

.adminOperationsMaterialEditorRows {
  gap: 10px;
  display: grid;
}

.adminOperationsMaterialEditorRow {
  grid-template-columns: minmax(0, 1.2fr) minmax(120px, 180px) minmax(120px, 160px) auto;
  align-items: end;
  gap: 10px;
  display: grid;
}

.adminOperationsEditorHoursField {
  max-width: 220px;
}

.adminOperationsTicketAttachmentGrid {
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 10px;
  display: grid;
}

.adminOperationsTicketAttachmentItem {
  color: inherit;
  gap: 6px;
  text-decoration: none;
  display: grid;
}

.adminOperationsTicketAttachmentImage {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  background: var(--bg-2);
  width: 100%;
}

.adminOperationsTicketAttachmentName {
  word-break: break-word;
  font-size: 12px;
  line-height: 1.3;
}

.adminTicketEditorFormBody {
  gap: 10px;
  padding: 14px 16px;
  display: grid;
}

.adminOperationsReadOnlyTicketPage .adminTicketEditorFormBody {
  background: color-mix(in srgb, var(--bg-2), white 42%);
  gap: 12px;
}

.adminTicketEditorMetaRow {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminTicketEditorMetaRowReadOnly {
  align-items: start;
}

.adminTicketEditorStatusPillReadOnly {
  align-self: start;
  margin-left: auto;
}

.adminTicketEditorInfoGrid {
  gap: 8px;
  display: grid;
}

.adminTicketEditorInfoValue {
  white-space: normal;
  overflow-wrap: anywhere;
  align-items: center;
  gap: 6px;
  width: fit-content;
  max-width: 100%;
  display: inline-flex;
}

.adminOperationsReadOnlyTicketPage .adminTicketEditorInfoValue {
  background: #fff;
}

.ticketsFormBody .field {
  gap: 6px;
  margin-top: 8px;
}

.ticketsFormGrid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  display: grid;
}

.ticketsGridSpan2 {
  grid-column: 1 / -1;
}

.ticketsMaterialList {
  gap: 6px;
  margin-bottom: 6px;
  display: grid;
}

.ticketsMaterialRow {
  grid-template-columns: minmax(0, 1.35fr) 130px 110px auto;
  gap: 6px;
  display: grid;
}

.ticketsMiniBtn {
  min-height: 40px;
  padding: 6px 10px;
  font-size: 13px;
}

.ticketsMaterialRemoveBtn {
  justify-self: end;
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.ticketsNotes {
  resize: vertical;
  min-height: 96px;
}

.portalInputHint {
  color: var(--muted);
  margin: 0;
  font-size: 13px;
}

.ticketsAttachmentInputHidden {
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  position: absolute;
  overflow: hidden;
}

.ticketsAttachmentDropzone {
  border: 1px dashed color-mix(in srgb, var(--stroke), var(--fg) 8%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 26%);
  text-align: center;
  cursor: pointer;
  justify-content: center;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 44px;
  margin-top: 4px;
  padding: 8px 12px;
  transition: background-color .14s, border-color .14s;
  display: inline-flex;
}

.ticketsAttachmentDropzone:hover {
  background: color-mix(in srgb, var(--focus), white 96%);
  border-color: color-mix(in srgb, var(--focus), transparent 50%);
}

.ticketsAttachmentDropzone:focus-visible, .ticketsAttachmentInputHidden:focus-visible + .ticketsAttachmentDropzone {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 60%);
  outline: none;
}

.ticketsAttachmentDropzone.isDisabled {
  cursor: not-allowed;
  opacity: .72;
}

.ticketsAttachmentDropzoneIcon {
  width: 18px;
  height: 18px;
  color: color-mix(in srgb, var(--muted), var(--fg) 30%);
}

.ticketsAttachmentDropzoneIcon svg {
  width: 100%;
  height: 100%;
  display: block;
}

.ticketsAttachmentDropzoneText {
  color: color-mix(in srgb, var(--muted), var(--fg) 18%);
  font-size: 14px;
}

.ticketsAttachmentGrid {
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 6px;
  margin-top: 6px;
  display: grid;
}

.ticketsAttachmentItem {
  gap: 5px;
  min-width: 0;
  display: grid;
  position: relative;
}

.ticketsAttachmentPreviewBtn {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 10%);
  border-radius: calc(var(--radius)  + 2px);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  cursor: pointer;
  padding: 0;
  line-height: 0;
  transition: border-color .14s, box-shadow .14s, background-color .14s, transform .14s;
  overflow: hidden;
}

.ticketsAttachmentPreviewBtn:hover, .ticketsAttachmentPreviewBtn:focus-visible {
  border-color: color-mix(in srgb, var(--focus), transparent 48%);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 78%);
  background: color-mix(in srgb, var(--focus), white 95%);
  transform: translateY(-1px);
}

.ticketsAttachmentPreview {
  aspect-ratio: 4 / 3;
  object-fit: cover;
  width: 100%;
  display: block;
}

.ticketsAttachmentRemoveBtn {
  border: 1px solid color-mix(in srgb, var(--danger), transparent 40%);
  background: color-mix(in srgb, var(--danger), white 88%);
  width: 28px;
  height: 28px;
  color: var(--danger);
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
  position: absolute;
  top: 8px;
  right: 8px;
}

.ticketsAttachmentRemoveBtn svg {
  width: 13px;
  height: 13px;
}

.ticketsAttachmentMeta {
  justify-content: space-between;
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  display: flex;
}

.ticketsAttachmentFileName {
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  font-size: 12px;
  line-height: 1.25;
  overflow: hidden;
}

.ticketsAttachmentSize {
  color: color-mix(in srgb, var(--fg), var(--muted) 42%);
  flex: none;
  font-size: 11px;
  line-height: 1.2;
}

.ticketsAttachedPill, .ticketsSavedPill {
  width: fit-content;
}

.ticketsActionsPrimary {
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  display: flex;
}

.ticketsFormActionsBar .btn {
  min-width: 170px;
}

.errorBox {
  border: 1px solid color-mix(in srgb, var(--danger), transparent 42%);
  background: color-mix(in srgb, var(--danger), white 92%);
  color: color-mix(in srgb, var(--danger), black 16%);
  border-radius: var(--radius);
  padding: 10px 12px;
  line-height: 1.4;
}

.ticketsAttachmentViewerBackdrop {
  z-index: 80;
  background: #000000a8;
  place-items: center;
  padding: 16px;
  display: grid;
  position: fixed;
  inset: 0;
}

.ticketsAttachmentViewer {
  color: #eef2ff;
  border-radius: calc(var(--radius)  + 4px);
  background: #0f1218;
  border: 1px solid #ffffff29;
  gap: 12px;
  width: min(920px, 100%);
  max-height: min(90svh, 900px);
  padding: 12px;
  display: grid;
  position: relative;
}

.ticketsAttachmentViewerCloseBtn {
  color: #f3f4f6;
  background: #000000c2;
  border: 1px solid #ffffff61;
  border-radius: 999px;
  flex: none;
  justify-content: center;
  align-items: center;
  width: 36px;
  height: 36px;
  margin-left: auto;
  padding: 0;
  font-size: 24px;
  line-height: 1;
  display: inline-flex;
  position: static;
}

.ticketsAttachmentViewerTopRow {
  align-items: center;
  gap: 10px;
  min-width: 0;
  display: flex;
}

.ticketsAttachmentViewerCounter {
  color: #ffffff9e;
  font-size: 12px;
}

.ticketsAttachmentViewerName {
  white-space: nowrap;
  text-overflow: ellipsis;
  flex: auto;
  min-width: 0;
  font-size: 13px;
  overflow: hidden;
}

.ticketsAttachmentViewerStage {
  border-radius: calc(var(--radius)  + 1px);
  background: color-mix(in srgb, black, var(--fg) 18%);
  border: 1px solid #ffffff1f;
  place-items: center;
  min-height: 280px;
  display: grid;
  position: relative;
  overflow: hidden;
}

.ticketsAttachmentViewerNavBtn {
  width: 44px;
  height: 44px;
  color: color-mix(in srgb, white, var(--bg) 8%);
  z-index: 2;
  background: #000000b8;
  border: 1px solid #ffffff70;
  border-radius: 999px;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.ticketsAttachmentViewerNavBtnPrev {
  left: 10px;
}

.ticketsAttachmentViewerNavBtnNext {
  right: 10px;
}

.ticketsAttachmentViewerNavBtn span {
  margin-top: -1px;
  font-size: 24px;
  line-height: 1;
}

.ticketsAttachmentViewerNavBtn:disabled {
  opacity: .48;
  cursor: not-allowed;
}

.ticketsAttachmentViewerImage {
  object-fit: contain;
  width: auto;
  max-width: 100%;
  max-height: min(72svh, 860px);
  display: block;
}

.adminOperationsApprovalsFilterForm {
  display: block;
}

@media (max-width: 1360px) {
  .adminApprovalsColItem {
    width: 156px;
  }

  .adminApprovalsColUser {
    width: 140px;
  }

  .adminApprovalsColState {
    width: 150px;
  }

  .adminApprovalsColActionLane {
    width: 184px;
  }

  .adminApprovalsResultsBody .adminApprovalsTable thead th {
    letter-spacing: .045em;
    font-size: 11px;
  }

  .adminApprovalsActionLane {
    grid-template-columns: 60px 38px 38px 28px;
  }

  .adminApprovalsQuickActionViewBtn {
    width: 60px;
    min-width: 60px;
    font-size: 11px;
  }

  .adminApprovalsQuickActionBtn, .adminApprovalsQuickActionPaidBtn {
    width: 38px !important;
    min-width: 38px !important;
  }

  .adminApprovalsActionPlaceholder {
    width: 38px;
  }
}

@media (max-width: 1220px) {
  .adminApprovalsColItem {
    width: 146px;
  }

  .adminApprovalsColUser {
    width: 128px;
  }

  .adminApprovalsColState {
    width: 138px;
  }

  .adminApprovalsColActionLane {
    width: 170px;
  }

  .adminApprovalsActionLane {
    grid-template-columns: 54px 34px 34px 28px;
    column-gap: 3px;
  }

  .adminApprovalsQuickActionViewBtn {
    width: 54px;
    min-width: 54px;
    padding: 0 6px !important;
  }

  .adminApprovalsQuickActionBtn, .adminApprovalsQuickActionPaidBtn {
    width: 34px !important;
    min-width: 34px !important;
  }

  .adminApprovalsQuickActionIcon {
    width: 14px;
    height: 14px;
  }

  .adminApprovalsActionPlaceholder {
    width: 34px;
  }

  .adminApprovalsTable .adminUsersNameLine, .adminApprovalsReferenceLink, .adminApprovalsInfoLinePrimary {
    font-size: 13px;
  }

  .adminApprovalsSecondaryLine, .adminApprovalsInfoLineSecondary, .adminApprovalsStateTime {
    font-size: 11px;
  }
}

.adminDirectoryFormGrid {
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
  display: grid;
}

@media (max-width: 1200px) {
  .adminOperationsReadOnlyPage .portalDetailFieldGrid, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isExpense, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isMaterial, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isMisc {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid .ticketsReadOnlyFieldReport {
    grid-column: 1 / -1;
  }
}

@media (max-width: 900px) {
  .adminSessionsToolbarBody, .adminOperationsEditorGrid {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminOperationsEditorGridSpan2 {
    grid-column: auto;
  }

  .adminOperationsDetailGrid, .adminOperationsDetailGridWide {
    grid-template-columns: 1fr;
  }

  .portalDetailHeroBody, .reportReadOnlyHeroBody, .ticketsReadOnlyHeroBody {
    padding: 16px !important;
  }

  .portalDetailFieldGrid, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isExpense, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isMaterial, .adminOperationsReadOnlyPage .ticketsReadOnlyFieldGrid.isMisc {
    grid-template-columns: 1fr;
  }

  .ticketsReadOnlyCombinedField {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .ticketsReadOnlyCombinedFieldDivider {
    width: 100%;
    height: 1px;
  }

  .portalDetailSection {
    padding: 16px;
  }

  .reportWorkerFieldGrid, .adminOperationsMaterialEditorRow {
    grid-template-columns: minmax(0, 1fr);
  }

  .reportWorkerTaskHeaderRow {
    grid-template-columns: minmax(0, 1fr) 96px 44px;
  }

  .reportWorkerTaskRow {
    grid-template-columns: minmax(0, 1fr) 168px 44px;
    align-items: center;
  }

  .reportWorkerTaskHoursField {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 4px;
  }

  .reportWorkerTaskStepBtn {
    min-width: 44px;
  }

  .reportWorkerTotalRow {
    grid-template-columns: minmax(0, 1fr) 168px 44px;
  }

  .reportWorkerTotalHoursCol {
    text-align: right;
    justify-items: end;
  }

  .reportEditorContextSiteCode {
    font-size: 28px;
  }

  .reportTicketsAttachList {
    gap: 4px;
  }

  .reportTicketsAttachItem {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: "meta end"
                         "detail detail";
    align-items: start;
    gap: 2px 6px;
    padding: 6px 6px 6px 8px;
  }

  .reportTicketsAttachMeta {
    grid-area: meta;
    gap: 6px;
  }

  .reportTicketsAttachDate {
    font-size: 11px;
    line-height: 1.1;
  }

  .reportTicketsAttachTypeToken {
    display: none;
  }

  .reportTicketsAttachPhotosTokenInline {
    min-height: 18px;
    padding: 0 6px;
    font-size: 11px;
    display: inline-flex;
  }

  .reportTicketsAttachPhotosTokenTrailing {
    display: none;
  }

  .reportTicketsAttachDetail {
    white-space: nowrap;
    grid-area: detail;
    align-items: baseline;
    gap: 4px;
    min-width: 0;
    display: flex;
    overflow: hidden;
  }

  .reportTicketsAttachDetailPrimary {
    flex: none;
    font-size: 12px;
  }

  .reportTicketsAttachDetailSecondary {
    white-space: nowrap;
    text-overflow: ellipsis;
    flex: auto;
    min-width: 0;
    font-size: 12px;
    overflow: hidden;
  }

  .reportTicketsAttachDetailSecondary:not(.isEmpty):before {
    content: "·";
    color: color-mix(in srgb, var(--muted), var(--fg) 18%);
    margin-right: 4px;
  }

  .reportTicketsAttachDetailSecondary.isEmpty {
    visibility: visible;
    display: none;
  }

  .reportTicketsAttachRowEnd {
    grid-area: end;
    justify-self: end;
    gap: 6px;
  }

  .reportTicketsAttachViewBtn {
    min-width: 64px;
    min-height: 30px;
    padding: 0 10px;
  }

  .ticketsFormGrid {
    grid-template-columns: 1fr;
  }

  .ticketsMaterialRow {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 52px;
    align-items: end;
  }

  .ticketsAttachmentGrid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .ticketsAttachmentPreview {
    aspect-ratio: 1;
  }

  .ticketsAttachmentDropzone {
    text-align: center;
    border-width: 2px;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-height: 96px;
    padding: 12px;
    display: flex;
  }

  .ticketsAttachmentDropzoneIcon {
    width: 20px;
    height: 20px;
  }

  .ticketsAttachmentDropzoneText {
    font-size: 13px;
  }

  .ticketsAttachmentViewerBackdrop {
    padding: 10px;
  }

  .ticketsAttachmentViewer {
    gap: 10px;
    padding: 10px;
  }

  .ticketsAttachmentViewerStage {
    min-height: 220px;
  }

  .ticketsAttachmentViewerImage {
    max-height: min(62svh, 560px);
  }

  .ticketsAttachmentViewerNavBtn {
    width: 40px;
    height: 40px;
  }

  .ticketsAttachmentViewerNavBtnPrev {
    left: 6px;
  }

  .ticketsAttachmentViewerNavBtnNext {
    right: 6px;
  }

  .ticketsActionsPrimary {
    width: 100%;
  }

  .ticketsFormActionsBar .btn {
    width: 100%;
    min-width: 0;
  }
}

.adminSecurityChecklistGrid {
  gap: 10px;
  display: grid;
}

.adminSecurityChecklistOption {
  gap: 4px;
  min-height: 32px;
  display: grid;
}

.adminSecurityChecklistMetaGrid {
  gap: 10px;
  display: grid;
}

.adminSecurityChecklistNotesField {
  min-width: 0;
}

.adminHeaderBody {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
  display: flex;
}

.adminHeaderTitleWrap {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminPageTitle {
  font-family: var(--font-condensed);
  letter-spacing: .02em;
  margin: 0;
  font-size: 30px;
  line-height: 1.15;
}

.adminOperationsHeaderTitleRow {
  align-items: center;
  gap: 10px;
  max-width: 100%;
  display: inline-flex;
}

.adminOperationsHeaderPendingBadge {
  min-width: 26px;
  min-height: 26px;
  padding: 0 7px;
  font-size: 13px;
}

.adminCountPill {
  justify-content: center;
  min-width: 84px;
}

.adminCountValue {
  color: var(--accent);
}

.adminUsersTemplateFilters {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  display: flex;
}

.adminUsersTemplateFilterPill {
  cursor: pointer;
  min-height: 34px;
  color: color-mix(in srgb, var(--fg), black 2%);
  padding: 6px 10px;
}

.adminUsersTemplateFilterPill.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 44%);
  background: color-mix(in srgb, var(--focus), white 90%);
  color: color-mix(in srgb, var(--focus), black 10%);
}

.adminUsersTemplateFilterLabel {
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 180px;
  overflow: hidden;
}

.adminUsersTemplateFilterCount {
  font-size: 12px;
}

.adminListToolbarBody {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 220px) minmax(180px, 220px);
  align-items: end;
  gap: 10px;
  padding-bottom: 16px;
  display: grid;
}

.adminListToolbarBodyNoSort {
  grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
}

.adminListSearchField, .adminListSortWrap, .adminListStatusWrap {
  margin-top: 0;
}

.adminListSearchField {
  min-width: 0;
}

.adminListSortWrap, .adminListStatusWrap {
  justify-self: end;
  width: min(220px, 100%);
}

@media (max-width: 1120px) {
  .adminListToolbarBody, .adminListToolbarBodyNoSort {
    grid-template-columns: minmax(0, 1fr) minmax(180px, 220px);
  }
}

.adminUsersListPage .adminListTableWrap {
  overflow-x: auto;
}

.adminUsersListPage {
  min-width: 0;
  overflow-x: hidden;
}

.adminUsersListPage .card, .adminUsersListPage .cardBody {
  min-width: 0;
}

.adminUsersListPage .adminListTable {
  border-collapse: separate;
  border-spacing: 0;
  width: 100%;
}

.adminUsersListPage .adminListTable thead th {
  text-align: left;
  letter-spacing: .01em;
  color: color-mix(in srgb, var(--fg), black 8%);
  border-bottom: 1px solid var(--stroke);
  padding: 12px;
  font-size: 16px;
  font-weight: 700;
}

.adminUsersListPage .adminListTable thead th:last-child {
  text-align: right;
}

.adminUsersListPage .adminListTable th:nth-child(3), .adminUsersListPage .adminListTable td:nth-child(3) {
  width: 160px;
}

.adminUsersListPage .adminListTable th:nth-child(2), .adminUsersListPage .adminListTable td:nth-child(2) {
  width: 40%;
}

.adminUsersListPage .adminListTable th:nth-child(4), .adminUsersListPage .adminListTable td:nth-child(4) {
  width: 138px;
}

.adminUsersListPage .adminListTable th:nth-child(5), .adminUsersListPage .adminListTable td:nth-child(5) {
  width: 176px;
}

.adminUsersListPage .adminListTable th:nth-child(4) .adminGeoSortHeaderBtn, .adminUsersListPage .adminListTable th:nth-child(5) .adminGeoSortHeaderBtn {
  white-space: nowrap;
}

.adminUsersActionsHeader {
  width: 104px;
}

.adminOperationsReviewActionsHeader {
  width: 188px;
}

.adminUsersListPage .adminListTable tbody td {
  border-bottom: 1px solid var(--stroke);
  vertical-align: middle;
  padding: 14px 12px;
  font-size: 14px;
  line-height: 1.3;
}

.adminUsersListPage .adminListTable td:nth-child(4), .adminUsersListPage .adminListTable td:nth-child(5) {
  font-size: 13px;
  line-height: 1.25;
}

.adminUsersListPage .adminListRow {
  transition: background-color .14s;
}

.adminUsersListPage .adminListRow:hover {
  background: color-mix(in srgb, var(--focus), white 96%);
}

.adminUsersListPage .adminListRow:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--focus), transparent 28%);
  outline-offset: -2px;
}

.adminUsersNameCell {
  align-items: center;
  gap: 12px;
  min-width: 240px;
  display: flex;
}

.adminUsersAvatar {
  object-fit: cover;
  background: var(--bg-2);
  border-radius: 999px;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  display: block;
}

.adminUsersNameMeta {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminUsersNameLine {
  white-space: nowrap;
  text-overflow: ellipsis;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  overflow: hidden;
}

.adminUsersNameLineRow {
  align-items: center;
  gap: 6px;
  min-width: 0;
  display: flex;
}

.adminUsersNameCell .mono, .adminUsersNameCell .muted {
  font-size: 13px;
  line-height: 1.25;
}

.adminUsersNameMeta .muted {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.adminUsersStatusBadge {
  border: 1px solid var(--stroke);
  letter-spacing: .02em;
  text-transform: uppercase;
  border-radius: 999px;
  flex-shrink: 0;
  align-items: center;
  width: fit-content;
  min-height: 16px;
  padding: 0 6px;
  font-size: 10px;
  font-weight: 600;
  line-height: 1;
  display: inline-flex;
}

.adminUsersStatusBadgeInactive {
  color: color-mix(in srgb, var(--danger), black 10%);
  background: color-mix(in srgb, var(--danger), white 90%);
  border-color: color-mix(in srgb, var(--danger), transparent 36%);
}

.adminUsersStatusBadgeActive {
  color: color-mix(in srgb, var(--fg), var(--muted) 30%);
  background: color-mix(in srgb, var(--bg), var(--bg-2) 60%);
  border-color: color-mix(in srgb, var(--stroke), black 2%);
}

.adminUsersStatusBadgePendingDeletion {
  color: color-mix(in srgb, var(--warning), black 18%);
  background: color-mix(in srgb, var(--warning), white 86%);
  border-color: color-mix(in srgb, var(--warning), transparent 30%);
}

.adminUsersStatusBadgeDeleted {
  color: color-mix(in srgb, var(--danger), black 14%);
  background: color-mix(in srgb, var(--danger), white 88%);
  border-color: color-mix(in srgb, var(--danger), transparent 34%);
}

.adminUsersRoleText {
  color: color-mix(in srgb, var(--fg), black 2%);
  font-size: 13px;
  font-weight: 400;
  line-height: 1.25;
}

.adminUsersRowActions {
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  width: 100%;
  display: inline-flex;
}

.adminListEditBtn {
  border-color: color-mix(in srgb, var(--stroke), black 10%);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  border-radius: 8px;
  min-height: 32px;
  font-size: 13px;
  font-weight: 600;
  padding-left: 13px !important;
  padding-right: 13px !important;
}

.adminListEditBtn:hover {
  border-color: color-mix(in srgb, var(--focus), transparent 58%);
  background: color-mix(in srgb, var(--focus), white 97%);
}

.adminUsersMenuWrap {
  position: relative;
}

.adminUsersMenuTrigger {
  min-width: 28px;
  min-height: 32px;
  color: color-mix(in srgb, var(--fg), white 22%);
  cursor: pointer;
  background: none;
  border: 0;
  justify-content: center;
  align-items: center;
  padding: 0;
  display: inline-flex;
}

.adminUsersMenuTrigger:hover {
  color: color-mix(in srgb, var(--fg), black 8%);
}

.adminUsersMenuTrigger:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), transparent 30%);
  border-radius: 6px;
  outline: none;
}

.adminUsersKebabDots {
  background: currentColor;
  border-radius: 999px;
  width: 4px;
  height: 4px;
  display: inline-block;
  box-shadow: 0 -7px, 0 7px;
}

.adminUsersMenu {
  border: 1px solid var(--stroke);
  border-radius: var(--radius);
  min-width: 220px;
  box-shadow: var(--shadow-2);
  background: var(--bg);
  z-index: 40;
  gap: 4px;
  padding: 6px;
  display: grid;
  position: absolute;
  top: calc(100% + 6px);
  right: 0;
}

.adminUsersMenuFloating {
  position: fixed;
  top: 0;
  left: 0;
  right: auto;
}

.adminUsersMenuItem {
  color: inherit;
  text-align: left;
  border-radius: var(--radius);
  cursor: pointer;
  background: none;
  border: 0;
  min-height: 40px;
  padding: 8px 10px;
  font-size: 14px;
}

.adminUsersMenuItem:hover {
  background: color-mix(in srgb, var(--focus), white 92%);
}

.adminUsersMenuItem:focus-visible {
  box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--focus), transparent 20%);
  outline: none;
}

.adminUsersMenuItemDanger {
  color: color-mix(in srgb, var(--danger), black 6%);
}

.adminUsersMenuItemDanger:hover {
  background: color-mix(in srgb, var(--danger), white 90%);
}

.adminUsersMenuItemDisabled {
  border-radius: var(--radius);
  min-height: 40px;
  color: var(--muted);
  margin: 0;
  padding: 8px 10px;
  font-size: 14px;
}

.adminFormBody {
  gap: 14px;
  display: grid;
}

.adminFormBodyCompact {
  align-content: start;
}

.adminUserFormSection {
  border-top: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  gap: 12px;
  padding-top: 14px;
  display: grid;
}

.adminUserFormSection:first-of-type {
  border-top: 0;
  padding-top: 0;
}

.adminUserFormSectionHead {
  gap: 4px;
  display: grid;
}

.adminUserEditProfileHead {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 4%);
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 16%);
  align-items: center;
  gap: 12px;
  padding: 10px;
  display: flex;
}

.adminUserEditProfileAvatar {
  width: 54px;
  height: 54px;
}

.adminUserEditProfileMeta {
  gap: 2px;
  min-width: 0;
  display: grid;
}

.adminUserEditProfileName {
  margin: 0;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}

.adminUserEditProfileUsername {
  margin: 0;
  font-size: 13px;
}

.adminUserEditProfilePills {
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-left: auto;
  display: flex;
}

.adminUserEditProfileActions {
  gap: 8px;
  padding: 8px 10px 0;
  display: grid;
}

.adminUserEditProfileActionsMeta {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminUserEditProfileActionsMeta .label, .adminUserEditProfileActionsMeta .muted {
  margin: 0;
}

.adminUserEditProfileActionsButtons {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminUserAvatarActionBtn {
  min-height: 38px;
  padding: 7px 14px;
  font-size: 14px;
}

.adminUsersAvatarInput {
  display: none;
}

.adminUserAvatarError {
  margin: 0;
}

.adminFormStack {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  display: grid;
}

.adminUsersRolesField {
  margin-top: 0;
}

.adminUsersRoleChoiceField {
  gap: 8px;
  display: grid;
}

.adminUsersRequiredMark {
  color: color-mix(in srgb, var(--danger), var(--fg) 22%);
  margin-left: 4px;
  font-weight: 700;
}

.adminUsersSuggestionAction {
  width: fit-content;
  min-height: 34px;
  margin-top: 6px;
  padding: 6px 10px;
}

.adminUsersLifecycleActions {
  justify-content: flex-end;
}

.adminSupplierPaymentAccountsSection {
  border-top: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 6%);
  gap: 10px;
  margin-top: 12px;
  padding-top: 8px;
  display: grid;
}

.adminSupplierPaymentAccountsHeader {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 12px;
  display: flex;
}

.adminSupplierPaymentAccountsTitleBlock {
  gap: 0;
  display: grid;
}

.adminSupplierPaymentAccountsTitle {
  margin: 0;
  font-size: 18px;
  line-height: 1.2;
}

.adminSupplierPaymentAccountsList {
  gap: 8px;
  display: grid;
}

.adminSupplierPaymentAccountRow, .adminSupplierPaymentAccountEditor {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 6%);
  background: color-mix(in srgb, var(--surface), var(--paper) 18%);
  gap: 10px;
  padding: 12px;
  display: grid;
}

.adminSupplierPaymentAccountEditor {
  background: none;
  border-width: 1px 0 0;
  gap: 12px;
  padding: 10px 0 0;
}

.adminSupplierPaymentAccountRow.isInactive {
  opacity: .72;
}

.adminSupplierPaymentAccountMain {
  gap: 6px;
  display: grid;
}

.adminSupplierPaymentAccountTopline {
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminSupplierPaymentAccountMeta {
  color: var(--muted);
  flex-wrap: wrap;
  gap: 12px;
  display: flex;
}

.adminSupplierPaymentAccountNotes {
  margin: 0;
}

.adminSupplierPaymentAccountActions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminSupplierPaymentAccountCheckbox {
  align-items: center;
  gap: 8px;
  display: flex;
}

.adminPillFit {
  width: fit-content;
}

.adminDialogBackdrop {
  background: color-mix(in srgb, var(--fg), transparent 84%);
  z-index: 110;
  place-items: center;
  padding: 20px;
  display: grid;
  position: fixed;
  inset: 0;
}

.adminDialogCard {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--fg) 6%);
  width: min(560px, 100%);
  box-shadow: 0 16px 40px color-mix(in srgb, var(--fg), transparent 82%);
}

.adminUsersResetDialogCard {
  width: min(480px, 100%);
}

.adminDialogBody {
  gap: 10px;
  display: grid;
}

.adminUsersResetTitle {
  flex-wrap: wrap;
  align-items: baseline;
  gap: .25ch;
  display: flex;
}

.adminUsersResetTitleText {
  font-weight: 600;
}

.adminUsersResetTitleName {
  color: var(--focus);
  font-weight: 800;
}

.adminUsersPasswordInputRow {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 8px;
  display: grid;
}

.adminUsersPasswordInputRow .btn {
  align-self: start;
}

.adminUsersResetCheckboxField {
  gap: 4px;
}

.adminUsersResetPolicyList {
  gap: 2px;
  margin: 0;
  padding-left: 18px;
  font-size: 12px;
  display: grid;
}

.adminUsersResetCheckboxHint {
  margin-left: 29px;
}

.adminUsersResetResultRow {
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  display: grid;
}

.adminUsersResetResultStatus {
  align-items: center;
  min-height: 36px;
  display: flex;
}

.adminUsersResetResultMessage {
  margin: 0;
}

.adminUsersResetResultActions {
  justify-content: flex-end;
  display: flex;
}

@media (max-width: 640px) {
  .adminUsersResetResultRow {
    grid-template-columns: minmax(0, 1fr);
  }

  .adminUsersResetResultActions {
    justify-content: flex-start;
  }
}

.adminDeleteUserDialogList {
  gap: 4px;
  margin: 0;
  padding-left: 18px;
  display: grid;
}

.adminFilterBody {
  gap: 10px;
  display: grid;
}

.adminHistoryFilterTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 10px;
  display: flex;
}

.adminBackupsToolbarBody .adminFilterActions {
  justify-content: flex-end;
}

.adminBackupsStatusPill {
  border-color: color-mix(in srgb, var(--stroke), var(--fg) 18%);
}

.adminBackupsStatusPillsuccess {
  background: color-mix(in srgb, var(--success), white 86%);
  border-color: color-mix(in srgb, var(--success), transparent 25%);
}

.adminBackupsStatusPillpartial {
  background: color-mix(in srgb, var(--warning), white 84%);
  border-color: color-mix(in srgb, var(--warning), transparent 30%);
}

.adminBackupsStatusPillfailed, .adminBackupsStatusPillerror {
  background: color-mix(in srgb, var(--danger), white 86%);
  border-color: color-mix(in srgb, var(--danger), transparent 34%);
}

.adminGdprFilterBody {
  gap: 12px;
}

.adminGdprFilterTop {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: start;
  gap: 10px;
  display: flex;
}

.adminGdprStatusPill {
  border-color: color-mix(in srgb, var(--stroke), var(--fg) 16%);
}

.adminGdprStatusPillopen {
  background: color-mix(in srgb, var(--focus), white 92%);
  border-color: color-mix(in srgb, var(--focus), transparent 34%);
}

.adminGdprStatusPillin_progress {
  background: color-mix(in srgb, var(--warning), white 86%);
  border-color: color-mix(in srgb, var(--warning), transparent 34%);
}

.adminGdprStatusPillcompleted {
  background: color-mix(in srgb, var(--success), white 87%);
  border-color: color-mix(in srgb, var(--success), transparent 34%);
}

.adminGdprStatusPillrejected {
  background: color-mix(in srgb, var(--danger), white 87%);
  border-color: color-mix(in srgb, var(--danger), transparent 34%);
}

.adminFilterForm {
  gap: 10px;
  display: grid;
}

.adminFilterGrid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  align-items: end;
  gap: 10px;
  display: grid;
}

.adminFilterActions {
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  display: flex;
}

.adminBulkActionBody {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  display: flex;
}

.adminListInlineBulkActionBody {
  border-bottom: 1px solid var(--stroke);
  margin-bottom: 12px;
  padding-top: 4px;
  padding-bottom: 16px;
}

.adminCountPill.adminBulkInlineCount {
  border-color: color-mix(in srgb, var(--stroke), black 10%);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
  min-width: 0;
  min-height: 32px;
  color: color-mix(in srgb, var(--fg), black 4%);
  border-radius: 8px;
  padding: 0 13px;
}

.adminBulkInlineCountValue {
  color: color-mix(in srgb, var(--fg), black 4%);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}

.adminBulkInlineBtn {
  min-height: 32px;
}

.adminBulkInlineBtnDanger {
  color: color-mix(in srgb, var(--danger), black 10%);
  background: color-mix(in srgb, var(--danger), white 94%);
  border-color: color-mix(in srgb, var(--danger), transparent 40%);
}

.adminBulkInlineBtnDanger:hover:not(:disabled) {
  color: color-mix(in srgb, var(--danger), black 16%);
  background: color-mix(in srgb, var(--danger), white 91%);
  border-color: color-mix(in srgb, var(--danger), transparent 28%);
}

.adminBulkActions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.adminBulkInlineHint {
  color: var(--muted);
  flex: 1 0 100%;
  margin: 0;
  font-size: 12px;
  line-height: 1.3;
}

.adminBulkCheckbox {
  align-items: center;
  margin-right: 2px;
  display: inline-flex;
}

.adminPagination {
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 100%;
  display: flex;
}

.adminPaginationNav {
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: auto;
  display: flex;
}

.adminPaginationNumbers {
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  display: flex;
}

.adminPaginationBtn {
  border: 1px solid color-mix(in srgb, var(--stroke), var(--bg) 8%);
  min-width: 32px;
  height: 32px;
  color: color-mix(in srgb, var(--fg), black 6%);
  font-family: var(--font-sans);
  cursor: pointer;
  background: #fff;
  border-radius: 6px;
  justify-content: center;
  align-items: center;
  padding: 0 8px;
  font-size: 16px;
  font-weight: 500;
  line-height: 1;
  transition: background-color .14s, border-color .14s, color .14s, box-shadow .14s;
  display: inline-flex;
}

.adminPaginationBtn:hover:not(:disabled) {
  background: color-mix(in srgb, var(--focus), white 96%);
  border-color: color-mix(in srgb, var(--focus), transparent 68%);
}

.adminPaginationBtn:focus-visible {
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--focus), white 72%);
  outline: none;
}

.adminPaginationBtn:disabled {
  cursor: not-allowed;
  color: color-mix(in srgb, var(--muted), black 8%);
  border-color: color-mix(in srgb, var(--stroke), transparent 18%);
  background: color-mix(in srgb, #fff, var(--bg) 12%);
}

.adminPaginationArrow {
  letter-spacing: -.2px;
  min-width: 32px;
  color: color-mix(in srgb, var(--fg), black 10%);
  background: none;
  border-color: #0000;
  padding-bottom: 0;
  font-size: 18px;
  font-weight: 400;
}

.adminPaginationArrow:hover:not(:disabled) {
  background: color-mix(in srgb, var(--focus), white 95%);
  border-color: #0000;
}

.adminPaginationArrow:disabled {
  background: none;
  border-color: #0000;
}

.adminPaginationNumber {
  font-size: 16px;
}

.adminPaginationBtnPlain {
  color: color-mix(in srgb, var(--fg), black 10%);
  background: none;
  border-color: #0000;
  min-width: 26px;
  padding: 0 6px;
}

.adminPaginationBtnPlain:hover:not(:disabled) {
  background: color-mix(in srgb, var(--focus), white 95%);
  border-color: #0000;
}

.adminPaginationBtnCurrent {
  border-color: color-mix(in srgb, var(--focus), transparent 44%);
  background: color-mix(in srgb, var(--focus), white 91%);
  color: color-mix(in srgb, var(--focus), black 14%);
  font-weight: 600;
}

.adminPaginationEllipsis {
  min-width: 14px;
  color: var(--muted);
  justify-content: center;
  align-items: center;
  font-size: 16px;
  line-height: 1;
  display: inline-flex;
}

.pillStatusDraft {
  border-color: var(--stroke);
  color: var(--muted);
  background: color-mix(in srgb, var(--bg-2), var(--bg) 18%);
}

.pillStatusAttached {
  border-color: color-mix(in srgb, var(--accent), transparent 55%);
  color: color-mix(in srgb, var(--accent), black 8%);
  background: color-mix(in srgb, var(--accent), white 92%);
}

.pillStatusSubmitted {
  border-color: color-mix(in srgb, var(--focus), transparent 50%);
  color: var(--fg);
  background: color-mix(in srgb, var(--focus), white 92%);
}

.pillStatusApproved {
  border-color: color-mix(in srgb, var(--ok), transparent 55%);
  color: var(--fg);
  background: color-mix(in srgb, var(--ok), white 94%);
}

.pillStatusRejected {
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
  color: var(--fg);
  background: color-mix(in srgb, var(--danger), white 92%);
}

.pillStatusLocked {
  border-color: color-mix(in srgb, var(--fg), transparent 75%);
  color: color-mix(in srgb, var(--fg), white 30%);
  background: color-mix(in srgb, var(--fg), white 88%);
}

.adminReportsFilterCardBody {
  gap: 12px;
  container: admin-filter-card / inline-size;
}

.adminReportsFilterForm {
  display: block;
}

.adminOperationsReviewFilterActionLabel {
  visibility: hidden;
  -webkit-user-select: none;
  user-select: none;
  display: block;
}

.adminOperationsFilterLabelShort, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldPerPage .adminOperationsFilterLabelLong, .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage .adminOperationsFilterLabelLong {
  display: none;
}

.adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldPerPage .adminOperationsFilterLabelShort, .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage .adminOperationsFilterLabelShort {
  display: inline;
}

.adminOperationsFilterLayouts {
  min-width: 0;
}

.adminOperationsFilterLayout, .adminOperationsFilterLayoutStacked {
  min-width: 0;
  display: none;
}

.adminOperationsFilterRow {
  align-items: end;
  gap: 12px;
  min-width: 0;
  display: grid;
}

.adminOperationsFilterRow + .adminOperationsFilterRow {
  margin-top: 10px;
}

.adminOperationsFilterRow > .field, .adminOperationsFilterRow > .adminOperationsFilterEndCluster {
  min-width: 0;
  margin-top: 0;
}

.adminReportsFilterField {
  margin-top: 0;
}

.adminOperationsFilterFieldSearch, .adminOperationsFilterFieldSite, .adminOperationsFilterFieldUser, .adminOperationsFilterFieldStatus, .adminOperationsFilterFieldType {
  min-width: 0;
}

.adminOperationsFilterFieldStatus {
  min-width: 11.5rem;
}

.adminOperationsFilterFieldType {
  min-width: 10.5rem;
}

.adminOperationsFilterFieldFrom, .adminOperationsFilterFieldTo {
  min-width: 156px;
}

.adminOperationsFilterFieldPerPage {
  width: 150px;
  min-width: 150px;
}

.adminOperationsFilterClearField {
  width: 108px;
  min-width: 108px;
}

.adminOperationsFilterEndCluster {
  grid-template-columns: 150px 108px;
  justify-content: end;
  justify-self: end;
  align-items: end;
  gap: 10px;
  width: min(100%, 268px);
  min-width: 0;
  max-width: 268px;
  display: grid;
}

.adminOperationsFilterEndCluster .field {
  min-width: 0;
  margin-top: 0;
}

.adminOperationsFilterRowRight {
  justify-content: end;
}

.adminOperationsFilterRowRight .adminOperationsFilterEndCluster {
  justify-self: end;
}

.adminOperationsFilterClearField .btn {
  width: 100%;
  min-width: 0;
  padding-inline: 12px;
}

@container admin-filter-card (max-width: 1200px) {
  .adminOperationsFilterEndCluster {
    grid-template-columns: 132px 104px;
    width: min(100%, 246px);
    min-width: 0;
    max-width: 246px;
  }

  .adminOperationsFilterFieldPerPage {
    width: 132px;
    min-width: 132px;
  }

  .adminOperationsFilterClearField {
    width: 104px;
    min-width: 104px;
  }
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutWide .adminOperationsFilterRow {
  grid-template-columns: minmax(18rem, 1.55fr) minmax(14rem, 1.05fr) minmax(14rem, 1.05fr) fit-content(11rem) minmax(10rem, .85fr) minmax(10rem, .85fr) fit-content(10rem) max-content;
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(16rem, 1.6fr) minmax(11.5rem, 1fr) minmax(12rem, 1.05fr);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(8.5rem, .8fr) minmax(8.5rem, .8fr) minmax(12rem, .95fr) minmax(8.75rem, .85fr) fit-content(268px);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(16rem, 2fr) minmax(10.5rem, 1fr);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(13rem, 1.15fr) minmax(12rem, .95fr) minmax(9.5rem, .9fr);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(8.5rem, 1fr) minmax(8.5rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2), .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(3), .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2), .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(3) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:last-child, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(0, 1fr) fit-content(208px);
  gap: 8px;
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
  grid-template-columns: 104px 96px;
  gap: 8px;
  width: min(100%, 208px);
  max-width: 208px;
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage {
  width: 104px;
  min-width: 104px;
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSearch, .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldStatus, .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldType, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSearch, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldStatus, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldType {
  min-width: 0;
  max-width: none;
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutWide .adminOperationsFilterRow {
  grid-template-columns: minmax(16rem, 1.45fr) minmax(10rem, 1fr) minmax(10rem, 1fr) 268px;
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(16rem, 1fr);
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(9.75rem, 1fr) minmax(9.75rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(0, 1fr);
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
  grid-template-columns: 104px 96px;
  gap: 8px;
  width: min(100%, 208px);
  max-width: 208px;
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage {
  width: 104px;
  min-width: 104px;
}

.adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser {
  min-width: 0;
  max-width: none;
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(14rem, 1.1fr) minmax(14rem, 1.1fr) minmax(11.5rem, .85fr);
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(9.75rem, 1fr) minmax(9.75rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(12rem, 1fr) minmax(12rem, 1fr);
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(11.5rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(0, 1fr) fit-content(208px);
  gap: 8px;
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
  grid-template-columns: 104px 96px;
  gap: 8px;
  width: min(100%, 208px);
  max-width: 208px;
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage {
  width: 104px;
  min-width: 104px;
}

.adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldStatus {
  min-width: 0;
  max-width: none;
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(16rem, 1.6fr) minmax(11.5rem, 1fr) minmax(12rem, 1.05fr);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(8.5rem, .8fr) minmax(8.5rem, .8fr) minmax(12rem, .95fr) minmax(8.75rem, .85fr) fit-content(268px);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(16rem, 2fr) minmax(10.5rem, 1fr);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(13rem, 1.15fr) minmax(12rem, .95fr) minmax(9.5rem, .9fr);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(8.5rem, 1fr) minmax(8.5rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(0, 1.18fr) minmax(0, .82fr);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2), .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(3) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(0, 1fr) fit-content(208px);
  gap: 8px;
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
  grid-template-columns: 104px 96px;
  gap: 8px;
  width: min(100%, 208px);
  max-width: 208px;
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage {
  width: 104px;
  min-width: 104px;
}

.adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSearch, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldStatus, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldType {
  min-width: 0;
  max-width: none;
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutWide .adminOperationsFilterRow, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutWide .adminOperationsFilterRow {
  grid-template-columns: minmax(14rem, 1.3fr) minmax(11.5rem, .9fr) minmax(10rem, 1fr) minmax(10rem, 1fr) 268px;
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:first-child {
  grid-template-columns: minmax(14rem, 1.2fr) minmax(14rem, 1.2fr);
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:last-child, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutMedium .adminOperationsFilterRow:last-child {
  grid-template-columns: minmax(10rem, 1fr) minmax(10rem, 1fr) fit-content(268px);
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2), .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:first-child, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterRow:nth-child(2) {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
  grid-template-columns: 104px 96px;
  gap: 8px;
  width: min(100%, 208px);
  max-width: 208px;
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldPerPage {
  width: 104px;
  min-width: 104px;
}

.adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldStatus, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked .adminOperationsFilterFieldUser {
  min-width: 0;
  max-width: none;
}

.adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutMedium {
  display: block;
}

@container admin-filter-card (max-width: 900px) {
  .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutMedium {
    display: none;
  }

  .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutNarrow {
    display: block;
  }
}

@container admin-filter-card (max-width: 620px) {
  .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutNarrow {
    display: none;
  }

  .adminOperationsFilterLayoutsApprovals .adminOperationsFilterLayoutStacked {
    display: block;
  }

  .adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutMedium {
    display: none;
  }

  .adminOperationsFilterLayoutsTimesheets .adminOperationsFilterLayoutStacked {
    display: block;
  }
}

@container admin-filter-card (max-width: 980px) {
  .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutMedium {
    display: none;
  }

  .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutNarrow {
    display: block;
  }
}

@container admin-filter-card (max-width: 900px) {
  .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutMedium {
    display: none;
  }

  .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutNarrow {
    display: block;
  }
}

@container admin-filter-card (max-width: 620px) {
  .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutNarrow {
    display: none;
  }

  .adminOperationsFilterLayoutsReports .adminOperationsFilterLayoutStacked {
    display: block;
  }

  .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutNarrow {
    display: none;
  }

  .adminOperationsFilterLayoutsTickets .adminOperationsFilterLayoutStacked {
    display: block;
  }

  .adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutMedium, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutMedium {
    display: none;
  }

  .adminOperationsFilterLayoutsDayOff .adminOperationsFilterLayoutStacked, .adminOperationsFilterLayoutsGeo .adminOperationsFilterLayoutStacked {
    display: block;
  }
}

@container admin-filter-card (max-width: 860px) {
  .adminOperationsFilterFieldFrom, .adminOperationsFilterFieldTo {
    max-width: none;
  }
}

@container admin-filter-card (max-width: 560px) {
  .adminOperationsFilterLabelLong {
    display: none;
  }

  .adminOperationsFilterLabelShort {
    display: inline;
  }

  .adminOperationsFilterLayoutNarrow .adminOperationsFilterRow {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .adminOperationsFilterLayoutNarrow .adminOperationsFilterEndCluster {
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    max-width: none;
  }

  .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldSearch, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldSite, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldUser, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldStatus, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldType, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldFrom, .adminOperationsFilterLayoutNarrow .adminOperationsFilterFieldTo {
    min-width: 0;
    max-width: none;
  }

  .adminOperationsFilterLayoutStacked .adminOperationsFilterRow {
    grid-template-columns: minmax(0, 1fr);
    align-items: stretch;
  }

  .adminOperationsFilterLayoutStacked .adminOperationsFilterEndCluster {
    justify-self: stretch;
    width: 100%;
    min-width: 0;
    max-width: none;
  }
}

.adminReportsFilterActions {
  align-self: end;
  width: 118px;
}

.adminReportsFilterActions .btn, .adminReportsFilterActions a.btn {
  width: 100%;
}

.adminEmptyText {
  margin: 0;
}

.adminInfoGrid {
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 6px;
  display: grid;
}

.adminInfoPill {
  justify-content: space-between;
}

.adminInfoValue {
  font-size: 12px;
}

@media (max-width: 1100px) {
  .adminTopbarInner {
    gap: 10px !important;
    padding: 10px 18px 8px !important;
  }

  .adminTopbarActions {
    gap: 10px;
  }

  .adminNavRow .nav {
    gap: 2px;
  }

  .adminNavRow .navLink {
    min-height: 42px;
    padding: 7px 11px 5px;
    font-size: 14px;
  }

  .adminTopbarRight {
    grid-template-columns: auto 82px;
    gap: 7px;
  }

  .adminTopbarRight .localeTrigger {
    width: 56px;
    min-width: 56px;
    min-height: 42px;
    padding: 4px 5px;
  }

  .adminTopbarRight form .btn {
    min-height: 42px;
    font-size: 13px;
    padding: 6px 8px !important;
  }
}

@media (max-width: 980px) {
  .adminTopbarInner {
    gap: 8px !important;
    padding: 9px 16px 7px !important;
  }

  .adminTopbarActions {
    gap: 8px;
  }

  .adminNavRow .navLink {
    min-width: 96px;
    min-height: 40px;
    padding: 6px 9px 4px;
    font-size: 12px;
  }

  .adminTopbarRight {
    grid-template-columns: auto 78px;
    gap: 6px;
  }

  .adminTopbarRight .localeTrigger {
    width: 54px;
    min-width: 54px;
    min-height: 40px;
    padding: 3px 4px;
    font-size: .82rem;
  }

  .adminTopbarRight form .btn {
    min-height: 40px;
    font-size: 11px;
    padding: 5px 7px !important;
  }
}

@media (max-width: 860px) {
  .adminTopbarInner {
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    display: grid;
    gap: 6px 8px !important;
    padding: 9px 16px 7px !important;
  }

  .adminBrand {
    align-items: center;
    gap: 8px;
    min-width: 0;
  }

  .adminBrandLogo {
    height: 20px;
    margin-top: 0;
  }

  .adminBrand .brandBlock {
    min-width: 0;
    margin-top: 1px;
  }

  .adminBrand .brandTitle {
    white-space: nowrap;
    line-height: 1.15;
    font-size: 14px !important;
  }

  .adminBrand .brandWelcome {
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
    line-height: 1.2;
    display: block;
    overflow: hidden;
    font-size: 9px !important;
  }

  .adminTopbarActions {
    display: contents;
  }

  .adminTopbarRight {
    grid-area: 1 / 2;
    grid-template-columns: auto 74px;
    align-items: center;
    gap: 6px;
    padding-top: 0;
    display: inline-grid;
  }

  .adminTopbarRight form {
    align-self: center;
  }

  .adminTopbarRight form .btn {
    width: 100%;
    min-width: 0;
    min-height: 40px;
    font-size: 10px;
    padding: 5px 7px !important;
  }

  .adminNavRow {
    grid-area: 2 / 1 / auto / -1;
    width: 100%;
  }

  .adminNavRow .nav {
    flex-wrap: nowrap;
    justify-content: flex-end;
    gap: 6px;
    width: 100%;
    padding-bottom: 2px;
    display: flex;
    overflow-x: auto;
  }

  .adminNavRow .navLink {
    text-align: center;
    white-space: nowrap;
    text-wrap: nowrap;
    border-bottom-width: 2px;
    justify-content: center;
    min-width: 112px;
    min-height: 40px;
    padding: 6px 6px 4px;
    font-size: 11px;
    line-height: 1.2;
  }

  .adminTopbarRight .localeSwitcher {
    width: auto;
    display: inline-block;
  }

  .adminTopbarRight .localeTrigger {
    gap: 3px;
    width: 52px;
    min-width: 52px;
    min-height: 40px;
    padding: 3px 4px;
    font-size: .8rem;
  }

  .adminTopbarRight .localeFlag {
    width: 15px;
    height: 10px;
  }
}

@media (min-width: 1180px) {
  .adminRoleTemplateMetaGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adminRoleTemplateMetaGrid .field:last-child {
    grid-column: 1 / -1;
  }
}

@media (min-width: 1080px) {
  .adminSecurityChecklistGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .adminSecurityChecklistMetaGrid {
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
  }
}

@media (max-width: 760px) {
  .adminLoginMain {
    place-items: center;
    min-height: 100svh;
    padding-top: 12px;
    padding-bottom: 12px;
  }

  .adminLoginCard {
    width: min(100%, 420px);
  }

  .adminLoginCard .cardHeader {
    padding: 14px 14px 0;
  }

  .adminLoginCard .cardBody {
    padding: 14px;
  }

  .adminLoginMeta {
    gap: 7px;
  }

  .adminLoginBrandRow {
    gap: 8px;
  }

  .adminLoginBrandLogo {
    height: 24px !important;
  }

  .adminLoginVersionPill {
    gap: 5px;
    min-height: 40px;
    padding-left: 8px !important;
    padding-right: 8px !important;
  }

  .adminLoginVersionPill .muted {
    font-size: 11px;
  }

  .adminLoginBrandRow .localeTrigger {
    --admin-locale-width: 56px;
    --admin-locale-min-h: 44px;
    font-size: .9rem;
  }

  .adminLoginTitle {
    margin-top: 10px;
    margin-bottom: 6px;
    font-size: 34px;
  }

  .adminLoginSubtitle {
    font-size: 13px;
  }

  .adminPageTitle {
    font-size: 24px;
  }

  .adminHeaderBody {
    align-items: flex-start;
  }

  .adminSettingsContent {
    padding-left: 0;
  }

  .adminSettingsPageContentSplit {
    min-width: 0;
  }

  .adminCountPill {
    min-width: 68px;
  }

  .adminListToolbarBody {
    grid-template-columns: 1fr;
  }

  .adminListSortWrap, .adminListStatusWrap {
    width: 100%;
  }

  .adminUsersListPage .adminListTable {
    min-width: 820px;
  }

  .adminUsersRowActions {
    justify-content: flex-start;
  }

  .adminUserEditProfileHead {
    flex-direction: column;
    align-items: flex-start;
  }

  .adminUserEditProfilePills {
    justify-content: flex-start;
    margin-left: 0;
  }

  .adminUserEditProfileActionsButtons {
    justify-content: flex-start;
  }

  .adminSettingsShell, html[data-admin-sidebar-collapsed="1"] .adminSettingsShell {
    grid-template-columns: 1fr;
  }

  .adminSettingsSidebarColumn {
    align-self: auto;
  }

  .adminSettingsSidebar {
    height: auto;
    min-height: 0;
    position: static;
    overflow: visible;
  }

  html[data-admin-shell-align="content-only"][data-admin-sidebar-collapsed="1"] .adminSettingsContent {
    max-width: var(--admin-shell-max);
  }

  html[data-admin-sidebar-collapsed="1"] .adminSidebarCollapsedInlineRow {
    grid-template-columns: 1fr;
    row-gap: 8px;
  }

  html[data-admin-sidebar-collapsed="1"] .adminSidebarCollapsedInlineToggle {
    justify-content: flex-start;
  }

  .adminSettingsSidebarBody {
    height: auto;
    min-height: 0;
    overflow: visible;
  }

  .adminSettingsShell .adminSettingsSidebarColumn:after {
    content: none;
  }

  .adminSettingsNav {
    gap: 10px;
  }

  .adminSettingsNavList {
    gap: 2px;
  }

  .adminSettingsNavLink {
    padding: 10px 12px;
  }

  .adminSettingsNavLinkLabel {
    white-space: normal;
  }

  .adminOperationsHeaderTitleRow {
    flex-wrap: wrap;
  }

  .adminFilterGrid {
    grid-template-columns: 1fr;
  }

  .adminFilterActions {
    justify-content: flex-start;
  }

  .adminReportsFilterActions {
    justify-content: flex-start;
    width: 100%;
  }

  .adminCompanyCalendarPickerGrid {
    grid-template-columns: 1fr !important;
  }

  .adminCompanyCalendarPanelTopRow {
    align-items: flex-start;
  }

  .adminCompanyCalendarPanelTopRowOpen {
    grid-template-columns: 1fr;
  }

  .adminCompanyCalendarPanelTopActions {
    width: 100%;
  }

  .adminCompanyCalendarActionLane {
    justify-content: flex-start;
    width: 100%;
    max-width: none;
    margin-left: 0;
  }

  .adminCompanyCalendarSelectedInput, .adminCompanyCalendarCloseBtn {
    width: auto !important;
    min-width: 0 !important;
  }

  .adminCompanyCalendarBulkActions {
    justify-content: flex-start;
  }

  .adminCompanyCalendarEditorGrid {
    grid-template-columns: 1fr;
  }

  .adminFilterActions .btn, .adminFilterActions a.btn {
    min-width: 88px;
  }

  .adminPagination {
    justify-content: center;
  }

  .adminPaginationNav {
    flex-wrap: nowrap;
    justify-content: center;
    width: auto;
  }

  .adminPaginationCompactMobile .adminPaginationEllipsis, .adminPaginationCompactMobile .adminPaginationNumber:not(.isCurrent) {
    display: none;
  }

  .adminPaginationCompactMobile .adminPaginationNumbers {
    flex: none;
  }

  .adminPaginationCompactMobile .adminPaginationNumber.isCurrent {
    pointer-events: none;
    min-width: 36px;
  }
}

@media (max-width: 680px) {
  .adminTopbarInner {
    padding: 8px 12px 6px !important;
  }
}

@media (max-width: 420px) {
  .adminTopbarInner {
    gap: 5px !important;
    padding: 7px 12px 5px !important;
  }

  .adminBrand .brandTitle {
    font-size: 13px !important;
  }

  .adminBrand .brandWelcome {
    font-size: 8px !important;
  }

  .adminTopbarRight form .btn {
    width: 100%;
    min-width: 0;
    min-height: 38px;
    font-size: 9px;
  }

  .adminNavRow .navLink {
    min-height: 34px;
    padding: 5px 5px 3px;
    font-size: 10px;
  }

  .adminTopbarRight {
    grid-template-columns: auto 72px;
  }

  .adminTopbarRight .localeTrigger {
    gap: 3px;
    width: 50px;
    min-width: 50px;
    min-height: 38px;
    padding: 3px;
  }

  .adminTopbarRight .localeMenuItem {
    column-gap: 5px;
    min-height: 28px;
    padding: 4px;
  }

  .adminTopbarRight .localeCode {
    font-size: .85em;
  }

  .adminTopbarRight .localeFlag {
    width: .95em;
    height: .72em;
  }
}

.adminTimesheetMonthGridWrap {
  margin-top: 8px;
}

.adminTimesheetMonthHeaderRow {
  gap: 8px;
  display: grid;
}

.adminTimesheetMonthHeadingRow {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminTimesheetMonthHeadingIdentityRow {
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
  min-width: 0;
  display: flex;
}

.adminTimesheetMonthIdentity {
  align-items: baseline;
  gap: 6px;
  min-width: 0;
  display: inline-flex;
}

.adminTimesheetMonthIdentity .adminUsersNameLine {
  font-size: 16px;
  line-height: 1.15;
}

.adminTimesheetMonthIdentity .muted {
  font-size: 14px;
  line-height: 1.15;
}

.adminTimesheetMonthHeading {
  margin: 0;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
}

.adminTimesheetDayHeaderRow {
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  display: flex;
}

.adminTimesheetEditorTopRow {
  grid-template-columns: minmax(0, 1fr);
  gap: 10px;
  display: grid;
}

.adminTimesheetModeSwitch {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-width: 420px;
  display: grid;
}

.adminTimesheetModeBtn {
  min-height: 46px;
}

.adminTimesheetModeBtn.isActive {
  border-color: color-mix(in srgb, var(--focus), transparent 45%);
  background: color-mix(in srgb, var(--focus), white 92%);
  color: color-mix(in srgb, var(--focus), black 12%);
}

.adminTimesheetHintText {
  font-size: 13px;
}

.adminTimesheetEditorTopHelpers {
  align-self: start;
  gap: 8px;
  display: grid;
}

.adminTimesheetTotalInfoRow {
  border: 1px solid color-mix(in srgb, var(--stroke), transparent 12%);
  background: color-mix(in srgb, var(--bg-2), white 54%);
  border-radius: var(--radius);
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  min-height: 44px;
  padding: 8px 12px;
  display: flex;
}

.adminTimesheetCopyYesterdayBtn {
  width: 100%;
  min-height: 44px;
}

.adminTimesheetIntervalRow {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  align-items: start;
  gap: 10px;
  margin-bottom: 10px;
  display: grid;
}

.adminTimesheetIntervalRemoveBtn {
  width: 44px;
  min-width: 44px;
  min-height: 44px;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

.adminTimesheetIntervalError {
  color: color-mix(in srgb, var(--danger), black 10%);
  grid-column: 1 / -1;
}

.adminTimesheetAddIntervalBtn {
  width: 100%;
  min-height: 44px;
}

.adminTimesheetReasonError {
  color: color-mix(in srgb, var(--danger), black 12%);
  margin-top: 6px;
}

.adminTimesheetEditorActions {
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  width: 100%;
  display: inline-flex;
}

.adminTimesheetStatusChip {
  align-self: flex-start;
  width: fit-content;
  min-width: 0;
}

.adminOperationsReadOnlyTimesheetPage .timesheetDayEditorShell {
  border-color: color-mix(in srgb, var(--focus), transparent 72%);
}

.adminTimesheetMonthWeekdaysRow {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  margin-bottom: 8px;
  display: grid;
}

.adminTimesheetMonthWeekday {
  text-align: center;
  letter-spacing: .02em;
  font-size: 13px;
}

.adminTimesheetMonthDaysGrid {
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 8px;
  min-width: 700px;
  display: grid;
}

.adminTimesheetMonthDayLink {
  text-decoration: none;
}

.adminTimesheetMonthDayLink .timesheetCellHint {
  white-space: nowrap;
  text-overflow: ellipsis;
  overflow: hidden;
}

.adminTimesheetLegend {
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 18px;
  margin-top: 10px;
  display: flex;
}

.adminTimesheetLegendItem {
  color: color-mix(in srgb, var(--fg), white 28%);
  align-items: center;
  gap: 8px;
  font-size: 13px;
  display: inline-flex;
}

.adminTimesheetLegendSwatch {
  border: 1px solid var(--stroke);
  background: var(--bg-2);
  border-radius: 2px;
  width: 12px;
  height: 12px;
}

.adminTimesheetLegendSwatchWorked {
  background: color-mix(in srgb, var(--ok), white 90%);
  border-color: color-mix(in srgb, var(--ok), transparent 55%);
}

.adminTimesheetLegendSwatchAbsence {
  background: color-mix(in srgb, var(--danger), white 92%);
  border-color: color-mix(in srgb, var(--danger), transparent 48%);
}

.adminTimesheetLegendSwatchWeekend {
  background: color-mix(in srgb, var(--bg), var(--fg) 2%);
  border-color: var(--stroke);
}

@media (min-width: 900px) {
  .adminTimesheetEditorTopRow {
    grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
    align-items: start;
  }
}

/*# sourceMappingURL=%5Broot-of-the-server%5D__dbd180dc._.css.map*/