@charset "UTF-8";
.toast[data-v-1835fae3] {
  position: fixed;
  top: 32px;
  left: 50%;
  transform: translateX(-50%);
  min-width: 220px;
  max-width: 90vw;
  padding: 16px 32px;
  border-radius: 12px;
  color: #fff;
  font-size: 1.1em;
  box-shadow: 0 4px 24px rgba(0,0,0,0.18);
  z-index: 9999;
  background: rgba(40, 60, 40, 0.45);
  backdrop-filter: blur(12px) saturate(180%);
  border: 1px solid rgba(120, 180, 120, 0.25);
  opacity: 0.98;
  pointer-events: none;
}
.toast.success[data-v-1835fae3] {
  background: linear-gradient(0, rgba(50,80,60,0.45) 0%, rgba(60,180,120,0.35) 100%);
  border: 1px solid rgba(60,180,120,0.35);
  color: #eafbe7;
}
.toast.error[data-v-1835fae3] {
  background: linear-gradient(0, rgba(100,40,40,0.45) 0%, rgba(220,80,80,0.35) 100%);
  border: 1px solid rgba(220,80,80,0.25);
  color: #fff0f0;
}
.toast-fade-enter-active[data-v-1835fae3], .toast-fade-leave-active[data-v-1835fae3] {
  transition: opacity 0.3s;
}
.toast-fade-enter-from[data-v-1835fae3], .toast-fade-leave-to[data-v-1835fae3] {
  opacity: 0;
}
h2[data-v-60238948] {
  color: var(--text2);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  margin: 0 0 1rem 0;
  text-transform: uppercase;
}
.btn-add[data-v-60238948] {
  border: 2px solid var(--text2);
}
.color-picker-list[data-v-60238948] {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-bottom: 1rem;
}
.color-picker-list .color-input-group[data-v-60238948] {
  display: flex;
  align-items: center;
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 0.25rem;
}
.color-picker-list .color-picker[data-v-60238948] {
  border: none;
  width: 28px;
  height: 28px;
  border-radius: 4px;
  cursor: pointer;
  background: none;
}
.color-picker-list .hex-input[data-v-60238948] {
  border: none;
  width: 75px;
  font-family: monospace;
  font-size: 0.875rem;
  padding: 0 0.25rem;
  text-transform: uppercase;
}
.color-picker-list .hex-input[data-v-60238948]:focus {
  outline: none;
}
.color-picker-list .btn-remove[data-v-60238948] {
  border: none;
  background: none;
  color: var(--text2);
  font-size: 1.25rem;
  cursor: pointer;
  padding: 0 0.25rem;
}
.color-picker-list .btn-remove[data-v-60238948]:hover:not(:disabled) {
  color: var(--text-warn);
}
.color-picker-list .btn-remove[disabled][data-v-60238948] {
  pointer-events: none;
  opacity: 0 !important;
}header[data-v-8676c267] {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
header h2[data-v-8676c267] {
  color: var(--text2);
  font-size: 0.875rem;
  letter-spacing: 0.05em;
  margin: 0 0 1rem 0;
  text-transform: uppercase;
}
header .palette-controls[data-v-8676c267] {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}
.palette-list[data-v-8676c267] {
  display: flex;
  flex-wrap: wrap;
  gap: 1em;
}
.palette-list select[data-v-8676c267], .palette-list input[data-v-8676c267] {
  width: fit-content;
  min-width: 300px;
  max-width: 100%;
}
.palette-list .pallet-name-edit[data-v-8676c267] {
  display: flex;
  gap: 1em;
}
.palette-list .pallet-name-edit input[type=text][data-v-8676c267]:placeholder-shown {
  font-style: italic;
  opacity: 0.5;
}.controls-panel[data-v-a3ebe82d] {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  color: var(--text1);
  background: var(--bg1);
  border: 1px solid var(--border);
  border-radius: 8px;
  display: flex;
  flex-flow: column;
  gap: 1.5rem;
  padding: 1.5rem;
  max-width: 1200px;
  margin: 0 auto 2rem;
}
/* Grid Matrix Table */
.grid-wrapper[data-v-b5e2fd90] {
  overflow-x: auto;
  text-align: center;
}
@media (min-width: 1200px) {
.grid-wrapper[data-v-b5e2fd90] {
    padding-inline: calc(50vw - 600px);
}
}
.grid-wrapper .contrast-matrix[data-v-b5e2fd90] {
  border-collapse: separate;
  border-spacing: 4px;
  width: 100%;
}
.grid-wrapper .col-header[data-v-b5e2fd90], .grid-wrapper .row-header[data-v-b5e2fd90] {
  padding: 0.5rem;
  min-width: 130px;
}
.header-swatch[data-v-b5e2fd90] {
  width: 24px;
  height: 24px;
  border-radius: 50%;
  margin: 0 auto 0.25rem;
  border: 1px solid var(--border);
}
.contrast-cell[data-v-b5e2fd90] {
  padding: 1rem;
  border-radius: 6px;
  text-align: center;
  vertical-align: middle;
  border: 1px solid var(--border);
  transition: transform 0.1s ease;
  min-width: 200px;
}
.contrast-cell[data-v-b5e2fd90]:has(.same) {
  background-image: -webkit-linear-gradient(bottom left, transparent 0, transparent calc(50% - 0.8px), var(--text2) 50%, transparent calc(50% + 0.8px), transparent);
  background-image: linear-gradient(to top right, transparent 0, transparent calc(50% - 0.8px), var(--text2) 50%, transparent calc(50% + 0.8px), transparent);
  position: relative;
}
.contrast-cell:has(.same) span[data-v-b5e2fd90] {
  position: absolute;
  color: black;
}
.contrast-cell:has(.same) .label-bg[data-v-b5e2fd90] {
  inset: auto 0.5em 0.5em;
  text-align: left;
}
.contrast-cell:has(.same) .label-text[data-v-b5e2fd90] {
  inset: 0.5rem 0.5em 0 auto;
  text-align: right;
}
.contrast-cell .preview-text[data-v-b5e2fd90] {
  margin-bottom: 0.5rem;
  line-height: 1em;
}
.contrast-cell .preview-text.normal[data-v-b5e2fd90] {
  font-size: 14px;
  font-weight: 400;
}
.contrast-cell .preview-text.large[data-v-b5e2fd90] {
  font-size: 24px;
  font-weight: 400;
}
.contrast-cell .preview-text.large-bold[data-v-b5e2fd90] {
  font-size: 24px;
  font-weight: 700;
}

/* Badges */
.scores-container[data-v-b5e2fd90] {
  display: flex;
  gap: 0.25rem;
  justify-content: center;
  flex-wrap: wrap;
}
.score-badge[data-v-b5e2fd90] {
  background: var(--bg1);
  border: 1px solid black;
  color: var(--text1);
  display: inline-flex;
  font-size: 0.7rem;
  font-weight: 600;
  padding: 0.15rem 0.4rem;
  align-items: center;
  gap: 0.25rem;
  /* WCAG */
}
.score-badge.wcag[data-v-b5e2fd90]::after {
  display: inline-block;
}
.score-badge.wcag.dnp[data-v-b5e2fd90] {
  background-color: rgb(236, 136, 103);
}
.score-badge.wcag.dnp[data-v-b5e2fd90]::after {
  content: "🅧 DNP";
}
.score-badge.wcag.lg-only[data-v-b5e2fd90] {
  background-color: rgb(254, 250, 158);
}
.score-badge.wcag.lg-only[data-v-b5e2fd90]::after {
  content: "✓ AA18";
}
.score-badge.wcag.aa[data-v-b5e2fd90] {
  background-color: rgb(129, 227, 195);
}
.score-badge.wcag.aa[data-v-b5e2fd90]::after {
  content: "✓ AA";
}
.score-badge.wcag.aaa[data-v-b5e2fd90] {
  background-color: rgb(129, 227, 195);
}
.score-badge.wcag.aaa[data-v-b5e2fd90]::after {
  content: "✓ AAA";
}
.score-badge[data-v-b5e2fd90] {
  /* APCA */
}
.score-badge .pass[data-v-b5e2fd90]::after {
  content: "✓";
  color: #16a34a;
}
.score-badge .fail[data-v-b5e2fd90] {
  opacity: 0.6;
  filter: grayscale(0.8);
}
.score-badge .fail[data-v-b5e2fd90]::after {
  content: "✕";
  color: #dc2626;
}
.score-badge .badge-label[data-v-b5e2fd90] {
  opacity: 0.65;
  font-size: 0.65rem;
}[data-v-1b145994]:root {
  --revealTiming:200ms;
}
.apca-lookup-container[data-v-1b145994] {
  box-shadow: -500px 0 0 1000px rgba(0, 0, 0, 0);
  position: fixed;
  top: 0;
  bottom: 0;
  left: 100%;
  opacity: 0;
  padding: 0;
  will-change: left, opacity, z-index, box-shadow;
  transition: left ease-out var(--revealTiming), box-shadow ease-out var(--revealTiming);
  z-index: -1;
}
.apca-lookup-container.open[data-v-1b145994] {
  box-shadow: -500px 0 0 1000px rgba(0, 0, 0, 0.3);
  left: calc(100% - 800px);
  opacity: 1;
  z-index: 10;
}
.apca-lookup-container .close-btn[data-v-1b145994] {
  position: fixed;
  inset: auto 1rem 1rem;
  z-index: 100;
  border-radius: 40px;
  box-shadow: 0 0 10px -2px rgba(0, 0, 0, 0.5), 0 4px 16px -6px rgba(0, 0, 0, 0.35);
  will-change: opacity;
  transition: all ease-out var(--revealTiming);
}
.apca-lookup-container .close-btn[data-v-1b145994]::after {
  content: "Close Overlay";
  display: inline-block;
}
@media (min-width: 1024px) {
.apca-lookup-container .close-btn[data-v-1b145994] {
    position: absolute;
    inset: 1rem calc(100% + 1rem) auto auto;
}
.apca-lookup-container .close-btn[data-v-1b145994]::after {
    content: unset;
}
}
.sidebar-content[data-v-1b145994] {
  background-color: var(--bg2);
  box-shadow: 0 0 0 -8px rgba(0, 0, 0, 0), 0 0 40px -20px rgba(0, 0, 0, 0);
  display: flex;
  flex-flow: row-reverse;
  gap: 1em;
  overflow: auto;
  padding: 20px;
  width: 800px;
  height: -webkit-fill-available;
  max-height: 100dvh;
  will-change: box-shadow;
  transition: box-shadow ease-out var(--revealTiming);
}
.open .sidebar-content[data-v-1b145994] {
  box-shadow: 0 0 40px -8px rgba(0, 0, 0, 0.5), -20px 0 80px -44px rgba(0, 0, 0, 0.35);
}
.sidebar-content main[data-v-1b145994], .sidebar-content aside[data-v-1b145994] {
  min-height: fit-content;
}
.sidebar-content #selectedVals[data-v-1b145994] {
  display: flex;
  gap: 1em;
}
.sidebar-content h4[data-v-1b145994] {
  margin: 0;
}
.sidebar-content .color-preview[data-v-1b145994] {
  display: flex;
  flex-flow: column;
  width: -webkit-fill-available;
}
.sidebar-content .color-picker[data-v-1b145994] {
  border: none;
  margin-left: -2px;
  padding: 0;
  width: calc(100% + 4px);
  max-width: 134px;
  height: 70px;
}
.sidebar-content .hex-input[data-v-1b145994] {
  border: 1px solid var(--border);
  cursor: default;
  width: -webkit-fill-available;
  max-width: 130px;
}
.apca-table[data-v-1b145994] {
  border-collapse: collapse;
  font-size: 0.8rem;
  font-family: monospace;
  margin-top: 1em;
}
.apca-table .size-col[data-v-1b145994] {
  padding-right: 8px;
}
.matrix-cell[data-v-1b145994] {
  background-color: rgb(237, 237, 237);
  border: 1px solid var(--border);
  box-sizing: content-box;
}
.matrix-cell[data-v-1b145994], .matrix-cell span[data-v-1b145994] {
  line-height: 40px;
}
.matrix-cell[data-v-1b145994] {
  padding: 0;
  text-align: center;
  position: relative;
  width: 40px;
  height: 40px;
}
.matrix-cell.r4[data-v-1b145994] {
  background-color: hsl(113, 31%, 89%);
}
.matrix-cell.r4[data-v-1b145994]::after {
  content: "....";
}
.matrix-cell.r3[data-v-1b145994] {
  background-color: hsl(113, 31%, 93%);
}
.matrix-cell.r3[data-v-1b145994]::after {
  content: "...";
}
.matrix-cell.r2[data-v-1b145994] {
  background-color: hsl(56, 85%, 89%);
}
.matrix-cell.r2[data-v-1b145994]::after {
  content: "..";
}
.matrix-cell.r1[data-v-1b145994] {
  background-color: hsl(8, 50%, 89%);
}
.matrix-cell.r1[data-v-1b145994]::after {
  content: ".";
}
.matrix-cell.r0[data-v-1b145994] {
  background-color: hsl(0, 0%, 54%);
  color: white;
}
.matrix-cell.r0[data-v-1b145994]::after {
  content: "-";
}
.matrix-cell.too-thin[data-v-1b145994] {
  background-color: rgb(200, 200, 200);
  color: black;
}
.matrix-cell.never[data-v-1b145994] {
  background-color: rgb(74, 74, 74);
  color: white;
}
.matrix-cell.copy[data-v-1b145994] {
  background-color: rgb(255, 210, 171);
  color: black;
  font-size: 18px;
  padding: 0;
}
.matrix-cell.headings-only[data-v-1b145994] {
  opacity: 0.5;
  background-color: rgb(200, 200, 200);
  color: black;
}
.matrix-cell[data-v-1b145994]::after {
  display: block;
  font-size: 0.9em;
  letter-spacing: -2px;
  line-height: 10px;
  text-align: center;
  position: absolute;
  inset: auto 0 0.4em;
}
.matrix-cell sup[data-v-1b145994] {
  line-height: 10px;
}
#legend[data-v-1b145994] {
  display: flex;
  flex-flow: column;
  gap: 0.25em;
}
#legend div.key[data-v-1b145994] {
  font-family: monospace;
  display: flex;
  align-items: center;
  gap: 0.5em;
}
#legend span.icon[data-v-1b145994] {
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
#legend p[data-v-1b145994] {
  margin: 0;
}footer[data-v-ebd07041] {
  color: var(--text1);
  background: var(--bg2);
  border-top: 1px solid var(--border);
  display: flex;
  flex-flow: column;
  gap: 1.5rem;
  margin: 2rem auto 0;
  padding: 1.5rem;
}
@media (min-width: 1200px) {
footer[data-v-ebd07041] {
    padding-inline: calc(50vw - 600px + 1.5rem);
}
}
footer #last-line[data-v-ebd07041] {
  font-size: 0.85em;
}
footer #last-line a[data-v-ebd07041] {
  color: var(--link);
  font-weight: bold;
}.apca-card[data-v-2610ddb7] {
  padding: 1.5rem;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  max-width: 400px;
  font-family: sans-serif;
}
.color-inputs[data-v-2610ddb7] {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.color-inputs label[data-v-2610ddb7] {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.results[data-v-2610ddb7] {
  background: #f8fafc;
  padding: 1rem;
  border-radius: 6px;
}:root {
  --color-black: #000;
  --color-white: #ffffff;
  --color-nav-item-hover: #dde4f2;
  --color-nav-item-active: #344566;
  --color-nav-sub-item-hover: oklch(from var(--primary-soft) l c h / 0.25);
  --color-nav-sub-item-active: var(--primary-soft);
  --color-nav-label: #2d3364;
  --color-accent-0: #a6b3fb;
  --color-accent-1: #8c9dfc;
  --color-accent-2: #6a7cff;
  --color-accent-3: #5b6cff;
  --color-accent-4: #4254e8;
  --bg-btn-primary: linear-gradient(180deg, var(--color-accent-3), var(--color-accent-4));
  --bg-btn-primary-hover: linear-gradient(180deg, var(--color-accent-1), var(--color-accent-2));
  --color-list-divider: #d3dbe7;
  --color-fallback-muted: #64748b;
  --color-fallback-bg-strong: #ecf1f8;
  --color-fallback-bg-hover: #dfe7f3;
  --color-overlay-surface: #fff;
  --color-overlay-border: #d5d8ff;
  --color-overlay-gradient-start: oklch(0.81 0.1 279.42);
  --color-overlay-gradient-mid: oklch(0.81 0.1 279.42);
  --color-overlay-gradient-end: oklch(0.81 0.1 279.42);
  --color-overlay-shadow: #fff0;
  --color-mobile-overlay-bg: #ced3ea;
  --icon-select-caret-svg: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23222222'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
  --flagUnread: #2a5fff;
  --flagFlagged: #3fb703;
  --flagSpam: #dc7800;
  --btn-read: #5698fd;
  --btn-flag: #ffc12f;
  --btn-spam: #dc7800;
  --btn-delete: #dc3545;
  --btn-archive: #6c757d;
  --btn-disabled: var(--bg2a);
}
@media (prefers-color-scheme: dark) {
:root {
    --color-nav-item-hover: #6a6a6a;
    --color-nav-item-active: #919191;
    --color-nav-sub-item-hover: #444876;
    --color-nav-sub-item-active: #b4b4bd;
    --color-nav-label: #bac1ff;
    --color-accent-0: #707df8;
    --color-accent-1: #5b6cff;
    --color-accent-2: #4254e8;
    --color-accent-3: #2137df;
    --color-accent-4: #162fe9;
    --bg-btn-primary: linear-gradient(180deg, var(--color-accent-1), var(--color-accent-2));
    --bg-btn-primary-hover: linear-gradient(180deg, #8c9dfc, #6a7cff);
    --icon-select-caret-svg: url("data:image/svg+xml;charset=UTF-8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='%23ffffff'><path d='M7 10l5 5 5-5z'/><path d='M0 0h24v24H0z' fill='none'/></svg>");
    --color-list-divider: #55546c;
    --color-status-expired-bg: #f5c6cb;
    --color-status-expired-text: #721c24;
    --color-status-warning-bg: #ffeeba;
    --color-status-warning-text: #856404;
    --color-status-success-bg: #c3e6cb;
    --color-status-success-text: #155724;
    --color-fallback-muted: #888;
    --color-fallback-bg-strong: #232228;
    --color-fallback-bg-hover: #414050;
    --color-overlay-surface: #2e2d35;
    --color-overlay-border: #33363f;
    --color-overlay-gradient-start: #302e3b;
    --color-overlay-gradient-mid: #383740;
    --color-overlay-gradient-end: #3f3d4c;
    --color-overlay-shadow: #0000001f;
    --color-mobile-overlay-bg: #212125;
    --flagUnread: #547eff;
    --flagFlagged: #6cac40;
    --flagSpam: #dd6800;
    --btn-read: #547eff;
    --btn-flag: #6cac40;
    --btn-spam: #dd6800;
    --btn-delete: #e73b4d;
    --btn-archive: #7c858d;
    --btn-disabled: var(--bg2a);
}
}
:root {
  --bg1: #f8fafc;
  --bg2: white;
  --border: #e2e8f0;
  --text1: black;
  --text2: #64748b;
  --text-warn: #ef4444;
  --primary: #ffdc7a;
  --primary-strong: #ffcb3e;
  --btn-neutral-bg: #b8b8b8;
  --interactive: var(--primary);
  --link: #0162ff;
}
body {
  background-color: var(--bg1);
  color: var(--text1);
  border-color: var(--border);
}
body:has(.apca-lookup-container.open) {
  max-height: 100dvh;
  overflow: hidden;
}
body:has(.apca-lookup-container.open) .contrast-app {
  pointer-events: none;
}
.btn.save {
  background-image: linear-gradient(180deg, #a8ff89, #40ce72);
  background-color: #96f785;
  border-color: #96f785;
}
.btn.primary {
  color: var(--black);
}
.header {
  max-width: 1200px;
  margin: 0 auto;
  padding: 2rem 1.5rem;
}
.header h1 {
  margin: 0 0 0.5rem 0;
  font-size: 1.75rem;
}
.header p {
  color: var(--text2);
  margin: 0;
}