trix-editor {
  border: 1px solid #bbb;
  border-radius: 3px;
  margin: 0;
  padding: 0.4em 0.6em;
  min-height: 5em;
  outline: none; }

trix-toolbar * {
  box-sizing: border-box; }

trix-toolbar .trix-button-row {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  overflow-x: auto; }

trix-toolbar .trix-button-group {
  display: flex;
  margin-bottom: 10px;
  border: 1px solid #bbb;
  border-top-color: #ccc;
  border-bottom-color: #888;
  border-radius: 3px; }
  trix-toolbar .trix-button-group:not(:first-child) {
    margin-left: 1.5vw; }
    @media (max-width: 768px) {
      trix-toolbar .trix-button-group:not(:first-child) {
        margin-left: 0; } }

trix-toolbar .trix-button-group-spacer {
  flex-grow: 1; }
  @media (max-width: 768px) {
    trix-toolbar .trix-button-group-spacer {
      display: none; } }

trix-toolbar .trix-button {
  position: relative;
  float: left;
  color: rgba(0, 0, 0, 0.6);
  font-size: 0.75em;
  font-weight: 600;
  white-space: nowrap;
  padding: 0 0.5em;
  margin: 0;
  outline: none;
  border: none;
  border-bottom: 1px solid #ddd;
  border-radius: 0;
  background: transparent; }
  trix-toolbar .trix-button:not(:first-child) {
    border-left: 1px solid #ccc; }
  trix-toolbar .trix-button.trix-active {
    background: #cbeefa;
    color: black; }
  trix-toolbar .trix-button:not(:disabled) {
    cursor: pointer; }
  trix-toolbar .trix-button:disabled {
    color: rgba(0, 0, 0, 0.125); }
  @media (max-width: 768px) {
    trix-toolbar .trix-button {
      letter-spacing: -0.01em;
      padding: 0 0.3em; } }

trix-toolbar .trix-button--icon {
  font-size: inherit;
  width: 2.6em;
  height: 1.6em;
  max-width: calc(0.8em + 4vw);
  text-indent: -9999px; }
  @media (max-width: 768px) {
    trix-toolbar .trix-button--icon {
      height: 2em;
      max-width: calc(0.8em + 3.5vw); } }
  trix-toolbar .trix-button--icon::before {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.6;
    content: "";
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain; }
    @media (max-width: 768px) {
      trix-toolbar .trix-button--icon::before {
        right: 6%;
        left: 6%; } }
  trix-toolbar .trix-button--icon.trix-active::before {
    opacity: 1; }
  trix-toolbar .trix-button--icon:disabled::before {
    opacity: 0.125; }

trix-toolbar .trix-button--icon-attach::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M10.5%2018V7.5c0-2.25%203-2.25%203%200V18c0%204.125-6%204.125-6%200V7.5c0-6.375%209-6.375%209%200V18%22%20stroke%3D%22%23000%22%20stroke-width%3D%222%22%20stroke-miterlimit%3D%2210%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E");
  top: 8%;
  bottom: 4%; }

trix-toolbar .trix-button--icon-bold::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6.522%2019.242a.5.5%200%200%201-.5-.5V5.35a.5.5%200%200%201%20.5-.5h5.783c1.347%200%202.46.345%203.24.982.783.64%201.216%201.562%201.216%202.683%200%201.13-.587%202.129-1.476%202.71a.35.35%200%200%200%20.049.613c1.259.56%202.101%201.742%202.101%203.22%200%201.282-.483%202.334-1.363%203.063-.876.726-2.132%201.12-3.66%201.12h-5.89ZM9.27%207.347v3.362h1.97c.766%200%201.347-.17%201.733-.464.38-.291.587-.716.587-1.27%200-.53-.183-.928-.513-1.198-.334-.273-.838-.43-1.505-.43H9.27Zm0%205.606v3.791h2.389c.832%200%201.448-.177%201.853-.497.399-.315.614-.786.614-1.423%200-.62-.22-1.077-.63-1.385-.418-.313-1.053-.486-1.905-.486H9.27Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-italic::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M9%205h6.5v2h-2.23l-2.31%2010H13v2H6v-2h2.461l2.306-10H9V5Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-link::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M18.948%205.258a4.337%204.337%200%200%200-6.108%200L11.217%206.87a.993.993%200%200%200%200%201.41c.392.39%201.027.39%201.418%200l1.623-1.613a2.323%202.323%200%200%201%203.271%200%202.29%202.29%200%200%201%200%203.251l-2.393%202.38a3.021%203.021%200%200%201-4.255%200l-.05-.049a1.007%201.007%200%200%200-1.418%200%20.993.993%200%200%200%200%201.41l.05.049a5.036%205.036%200%200%200%207.091%200l2.394-2.38a4.275%204.275%200%200%200%200-6.072Zm-13.683%2013.6a4.337%204.337%200%200%200%206.108%200l1.262-1.255a.993.993%200%200%200%200-1.41%201.007%201.007%200%200%200-1.418%200L9.954%2017.45a2.323%202.323%200%200%201-3.27%200%202.29%202.29%200%200%201%200-3.251l2.344-2.331a2.579%202.579%200%200%201%203.631%200c.392.39%201.027.39%201.419%200a.993.993%200%200%200%200-1.41%204.593%204.593%200%200%200-6.468%200l-2.345%202.33a4.275%204.275%200%200%200%200%206.072Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-strike::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M6%2014.986c.088%202.647%202.246%204.258%205.635%204.258%203.496%200%205.713-1.728%205.713-4.463%200-.275-.02-.536-.062-.781h-3.461c.398.293.573.654.573%201.123%200%201.035-1.074%201.787-2.646%201.787-1.563%200-2.773-.762-2.91-1.924H6ZM6.432%2010h3.763c-.632-.314-.914-.715-.914-1.273%200-1.045.977-1.739%202.432-1.739%201.475%200%202.52.723%202.617%201.914h2.764c-.05-2.548-2.11-4.238-5.39-4.238-3.145%200-5.392%201.719-5.392%204.316%200%20.363.04.703.12%201.02ZM4%2011a1%201%200%201%200%200%202h15a1%201%200%201%200%200-2H4Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-quote::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M4.581%208.471c.44-.5%201.056-.834%201.758-.995C8.074%207.17%209.201%207.822%2010%208.752c1.354%201.578%201.33%203.555.394%205.277-.941%201.731-2.788%203.163-4.988%203.56a.622.622%200%200%201-.653-.317c-.113-.205-.121-.49.16-.764.294-.286.567-.566.791-.835.222-.266.413-.54.524-.815.113-.28.156-.597.026-.908-.128-.303-.39-.524-.72-.69a3.02%203.02%200%200%201-1.674-2.7c0-.905.283-1.59.72-2.088Zm9.419%200c.44-.5%201.055-.834%201.758-.995%201.734-.306%202.862.346%203.66%201.276%201.355%201.578%201.33%203.555.395%205.277-.941%201.731-2.789%203.163-4.988%203.56a.622.622%200%200%201-.653-.317c-.113-.205-.122-.49.16-.764.294-.286.567-.566.791-.835.222-.266.412-.54.523-.815.114-.28.157-.597.026-.908-.127-.303-.39-.524-.72-.69a3.02%203.02%200%200%201-1.672-2.701c0-.905.283-1.59.72-2.088Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-heading-1::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21.5%207.5v-3h-12v3H14v13h3v-13h4.5ZM9%2013.5h3.5v-3h-10v3H6v7h3v-7Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-code::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3.293%2011.293a1%201%200%200%200%200%201.414l4%204a1%201%200%201%200%201.414-1.414L5.414%2012l3.293-3.293a1%201%200%200%200-1.414-1.414l-4%204Zm13.414%205.414%204-4a1%201%200%200%200%200-1.414l-4-4a1%201%200%201%200-1.414%201.414L18.586%2012l-3.293%203.293a1%201%200%200%200%201.414%201.414Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-bullet-list::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%207.5a1.5%201.5%200%201%200%200-3%201.5%201.5%200%200%200%200%203ZM8%206a1%201%200%200%201%201-1h11a1%201%200%201%201%200%202H9a1%201%200%200%201-1-1Zm1%205a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm0%206a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm-2.5-5a1.5%201.5%200%201%201-3%200%201.5%201.5%200%200%201%203%200ZM5%2019.5a1.5%201.5%200%201%200%200-3%201.5%201.5%200%200%200%200%203Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-number-list::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%204h2v4H4V5H3V4Zm5%202a1%201%200%200%201%201-1h11a1%201%200%201%201%200%202H9a1%201%200%200%201-1-1Zm1%205a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm0%206a1%201%200%201%200%200%202h11a1%201%200%201%200%200-2H9Zm-3.5-7H6v1l-1.5%202H6v1H3v-1l1.667-2H3v-1h2.5ZM3%2017v-1h3v4H3v-1h2v-.5H4v-1h1V17H3Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-undo::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M3%2014a1%201%200%200%200%201%201h6a1%201%200%201%200%200-2H6.257c2.247-2.764%205.151-3.668%207.579-3.264%202.589.432%204.739%202.356%205.174%205.405a1%201%200%200%200%201.98-.283c-.564-3.95-3.415-6.526-6.825-7.095C11.084%207.25%207.63%208.377%205%2011.39V8a1%201%200%200%200-2%200v6Zm2-1Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-redo::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M21%2014a1%201%200%200%201-1%201h-6a1%201%200%201%201%200-2h3.743c-2.247-2.764-5.151-3.668-7.579-3.264-2.589.432-4.739%202.356-5.174%205.405a1%201%200%200%201-1.98-.283c.564-3.95%203.415-6.526%206.826-7.095%203.08-.513%206.534.614%209.164%203.626V8a1%201%200%201%201%202%200v6Zm-2-1Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-decrease-nesting-level::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%206a1%201%200%200%201%201-1h12a1%201%200%201%201%200%202H6a1%201%200%200%201-1-1Zm4%205a1%201%200%201%200%200%202h9a1%201%200%201%200%200-2H9Zm-3%206a1%201%200%201%200%200%202h12a1%201%200%201%200%200-2H6Zm-3.707-5.707a1%201%200%200%200%200%201.414l2%202a1%201%200%201%200%201.414-1.414L4.414%2012l1.293-1.293a1%201%200%200%200-1.414-1.414l-2%202Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-button--icon-increase-nesting-level::before {
  background-image: url("data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20fill%3D%22none%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20fill-rule%3D%22evenodd%22%20clip-rule%3D%22evenodd%22%20d%3D%22M5%206a1%201%200%200%201%201-1h12a1%201%200%201%201%200%202H6a1%201%200%200%201-1-1Zm4%205a1%201%200%201%200%200%202h9a1%201%200%201%200%200-2H9Zm-3%206a1%201%200%201%200%200%202h12a1%201%200%201%200%200-2H6Zm-2.293-2.293%202-2a1%201%200%200%200%200-1.414l-2-2a1%201%200%201%200-1.414%201.414L3.586%2012l-1.293%201.293a1%201%200%201%200%201.414%201.414Z%22%20fill%3D%22%23000%22%2F%3E%3C%2Fsvg%3E"); }

trix-toolbar .trix-dialogs {
  position: relative; }

trix-toolbar .trix-dialog {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  font-size: 0.75em;
  padding: 15px 10px;
  background: #fff;
  box-shadow: 0 0.3em 1em #ccc;
  border-top: 2px solid #888;
  border-radius: 5px;
  z-index: 5; }

trix-toolbar .trix-input--dialog {
  font-size: inherit;
  font-weight: normal;
  padding: 0.5em 0.8em;
  margin: 0 10px 0 0;
  border-radius: 3px;
  border: 1px solid #bbb;
  background-color: #fff;
  box-shadow: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none; }
  trix-toolbar .trix-input--dialog.validate:invalid {
    box-shadow: #F00 0px 0px 1.5px 1px; }

trix-toolbar .trix-button--dialog {
  font-size: inherit;
  padding: 0.5em;
  border-bottom: none; }

trix-toolbar .trix-dialog--link {
  max-width: 600px; }

trix-toolbar .trix-dialog__link-fields {
  display: flex;
  align-items: baseline; }
  trix-toolbar .trix-dialog__link-fields .trix-input {
    flex: 1; }
  trix-toolbar .trix-dialog__link-fields .trix-button-group {
    flex: 0 0 content;
    margin: 0; }

trix-editor [data-trix-mutable]:not(.attachment__caption-editor) {
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none; }

trix-editor [data-trix-mutable]::-moz-selection,
trix-editor [data-trix-cursor-target]::-moz-selection, trix-editor [data-trix-mutable] ::-moz-selection {
  background: none; }

trix-editor [data-trix-mutable]::selection,
trix-editor [data-trix-cursor-target]::selection, trix-editor [data-trix-mutable] ::selection {
  background: none; }

trix-editor .attachment__caption-editor:focus[data-trix-mutable]::-moz-selection {
  background: highlight; }

trix-editor .attachment__caption-editor:focus[data-trix-mutable]::selection {
  background: highlight; }

trix-editor [data-trix-mutable].attachment.attachment--file {
  box-shadow: 0 0 0 2px highlight;
  border-color: transparent; }

trix-editor [data-trix-mutable].attachment img {
  box-shadow: 0 0 0 2px highlight; }

trix-editor .attachment {
  position: relative; }
  trix-editor .attachment:hover {
    cursor: default; }

trix-editor .attachment--preview .attachment__caption:hover {
  cursor: text; }

trix-editor .attachment__progress {
  position: absolute;
  z-index: 1;
  height: 20px;
  top: calc(50% - 10px);
  left: 5%;
  width: 90%;
  opacity: 0.9;
  transition: opacity 200ms ease-in; }
  trix-editor .attachment__progress[value="100"] {
    opacity: 0; }

trix-editor .attachment__caption-editor {
  display: inline-block;
  width: 100%;
  margin: 0;
  padding: 0;
  font-size: inherit;
  font-family: inherit;
  line-height: inherit;
  color: inherit;
  text-align: center;
  vertical-align: top;
  border: none;
  outline: none;
  -webkit-appearance: none;
  -moz-appearance: none; }

trix-editor .attachment__toolbar {
  position: absolute;
  z-index: 1;
  top: -0.9em;
  left: 0;
  width: 100%;
  text-align: center; }

trix-editor .trix-button-group {
  display: inline-flex; }

trix-editor .trix-button {
  position: relative;
  float: left;
  color: #666;
  white-space: nowrap;
  font-size: 80%;
  padding: 0 0.8em;
  margin: 0;
  outline: none;
  border: none;
  border-radius: 0;
  background: transparent; }
  trix-editor .trix-button:not(:first-child) {
    border-left: 1px solid #ccc; }
  trix-editor .trix-button.trix-active {
    background: #cbeefa; }
  trix-editor .trix-button:not(:disabled) {
    cursor: pointer; }

trix-editor .trix-button--remove {
  text-indent: -9999px;
  display: inline-block;
  padding: 0;
  outline: none;
  width: 1.8em;
  height: 1.8em;
  line-height: 1.8em;
  border-radius: 50%;
  background-color: #fff;
  border: 2px solid highlight;
  box-shadow: 1px 1px 6px rgba(0, 0, 0, 0.25); }
  trix-editor .trix-button--remove::before {
    display: inline-block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    opacity: 0.7;
    content: "";
    background-image: url("data:image/svg+xml,%3Csvg%20height%3D%2224%22%20width%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20d%3D%22M19%206.41%2017.59%205%2012%2010.59%206.41%205%205%206.41%2010.59%2012%205%2017.59%206.41%2019%2012%2013.41%2017.59%2019%2019%2017.59%2013.41%2012z%22%2F%3E%3Cpath%20d%3D%22M0%200h24v24H0z%22%20fill%3D%22none%22%2F%3E%3C%2Fsvg%3E");
    background-position: center;
    background-repeat: no-repeat;
    background-size: 90%; }
  trix-editor .trix-button--remove:hover {
    border-color: #333; }
    trix-editor .trix-button--remove:hover::before {
      opacity: 1; }

trix-editor .attachment__metadata-container {
  position: relative; }

trix-editor .attachment__metadata {
  position: absolute;
  left: 50%;
  top: 2em;
  transform: translate(-50%, 0);
  max-width: 90%;
  padding: 0.1em 0.6em;
  font-size: 0.8em;
  color: #fff;
  background-color: rgba(0, 0, 0, 0.7);
  border-radius: 3px; }
  trix-editor .attachment__metadata .attachment__name {
    display: inline-block;
    max-width: 100%;
    vertical-align: bottom;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap; }
  trix-editor .attachment__metadata .attachment__size {
    margin-left: 0.2em;
    white-space: nowrap; }

.trix-content {
  line-height: 1.5; }
  .trix-content * {
    box-sizing: border-box;
    margin: 0;
    padding: 0; }
  .trix-content h1 {
    font-size: 1.2em;
    line-height: 1.2; }
  .trix-content blockquote {
    border: 0 solid #ccc;
    border-left-width: 0.3em;
    margin-left: 0.3em;
    padding-left: 0.6em; }
  .trix-content [dir=rtl] blockquote,
  .trix-content blockquote[dir=rtl] {
    border-width: 0;
    border-right-width: 0.3em;
    margin-right: 0.3em;
    padding-right: 0.6em; }
  .trix-content li {
    margin-left: 1em; }
  .trix-content [dir=rtl] li {
    margin-right: 1em; }
  .trix-content pre {
    display: inline-block;
    width: 100%;
    vertical-align: top;
    font-family: monospace;
    font-size: 0.9em;
    padding: 0.5em;
    white-space: pre;
    background-color: #eee;
    overflow-x: auto; }
  .trix-content img {
    max-width: 100%;
    height: auto; }
  .trix-content .attachment {
    display: inline-block;
    position: relative;
    max-width: 100%; }
    .trix-content .attachment a {
      color: inherit;
      text-decoration: none; }
      .trix-content .attachment a:hover, .trix-content .attachment a:visited:hover {
        color: inherit; }
  .trix-content .attachment__caption {
    text-align: center; }
    .trix-content .attachment__caption .attachment__name + .attachment__size::before {
      content: ' \2022 '; }
  .trix-content .attachment--preview {
    width: 100%;
    text-align: center; }
    .trix-content .attachment--preview .attachment__caption {
      color: #666;
      font-size: 0.9em;
      line-height: 1.2; }
  .trix-content .attachment--file {
    color: #333;
    line-height: 1;
    margin: 0 2px 2px 2px;
    padding: 0.4em 1em;
    border: 1px solid #bbb;
    border-radius: 5px; }
  .trix-content .attachment-gallery {
    display: flex;
    flex-wrap: wrap;
    position: relative; }
    .trix-content .attachment-gallery .attachment {
      flex: 1 0 33%;
      padding: 0 0.5em;
      max-width: 33%; }
    .trix-content .attachment-gallery.attachment-gallery--2 .attachment, .trix-content .attachment-gallery.attachment-gallery--4 .attachment {
      flex-basis: 50%;
      max-width: 50%; }
/*
 * Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and
 * the trix-editor content (whether displayed or under editing). Feel free to incorporate this
 * inclusion directly in any other asset bundle and remove this file.
 *

*/

/*
 * We need to override trix.css’s image gallery styles to accommodate the
 * <action-text-attachment> element we wrap around attachments. Otherwise,
 * images in galleries will be squished by the max-width: 33%; rule.
*/
.trix-content .attachment-gallery > action-text-attachment,
.trix-content .attachment-gallery > .attachment {
  flex: 1 0 33%;
  padding: 0 0.5em;
  max-width: 33%;
}

.trix-content .attachment-gallery.attachment-gallery--2 > action-text-attachment,
.trix-content .attachment-gallery.attachment-gallery--2 > .attachment, .trix-content .attachment-gallery.attachment-gallery--4 > action-text-attachment,
.trix-content .attachment-gallery.attachment-gallery--4 > .attachment {
  flex-basis: 50%;
  max-width: 50%;
}

.trix-content action-text-attachment .attachment {
  padding: 0 !important;
  max-width: 100% !important;
}

/*
 * Hide the file tools button group and the code button.
*/
.trix-button-group--file-tools,
.trix-button--icon-code
{
  display: none !important;
}

.trix-content a {
  color: rgb(37 99 235);
  text-decoration: underline;
}
.trix-content * a:hover {
  color: rgb(30 64 175); 
  text-decoration: underline;
}
.trix-content * a:visited {
  color: rgb(37 99 235);
  text-decoration: underline;
}

.trix-content ul {
  list-style-type: disc;
  padding-left: 1rem;
}
.trix-content ul ul {
  list-style-type: circle;
}
.trix-content ul ul ul {
  list-style-type: square;
}
.trix-content ol {
  list-style-type: decimal;
  padding-left: 1rem;
}

@tailwind base;
@tailwind components;
@tailwind utilities;



@layer components {
  .field_with_errors > input, .field_with_errors > select, .field_with_errors > textarea {
    @apply text-red-900 ring-1 ring-inset ring-red-300 placeholder:text-red-300 focus:ring-2 focus:ring-inset focus:ring-red-500;
  }

  label.required::after {
    content: '*';
  }

  .pagy {
    @apply flex space-x-1 font-semibold text-sm text-gray-500;
    a:not(.gap) {
      @apply block rounded-lg px-3 py-1 bg-gray-200;
      &:hover {
        @apply bg-gray-300;
      }
      &:not([href]) { /* disabled links */
        @apply text-gray-300 bg-gray-100 cursor-default;
      }
      &.current {
        @apply text-white bg-gray-400;
      }
    }
    label {
      @apply inline-block whitespace-nowrap bg-gray-200 rounded-lg px-3 py-0.5;
      input {
        @apply bg-gray-100 border-none rounded-md;
      }
    }
  }

  span.sort-select {
    @apply flex flex-wrap gap-2;
  }
  span.sort-select select {
    @apply w-auto min-w-[12rem] rounded-md border-0 py-1.5 pl-3 pr-8 text-gray-900 shadow-sm ring-1 ring-inset ring-gray-300 placeholder:text-gray-400 focus:ring-2 focus:ring-inset focus:ring-indigo-600 sm:text-sm sm:leading-6;
  }
}
/* Carousel petition styling */
.carousel-petition {
  transition: opacity 0.3s ease-in-out, transform 0.3s ease-in-out;
}

.carousel-petition.entering {
  opacity: 0;
  transform: translateX(100px);
}

.carousel-petition.entered {
  opacity: 1;
  transform: translateX(0);
}

.carousel-petition.exiting {
  opacity: 0;
  transform: translateX(-100px);
}

/* Make buttons more interactive */
.carousel-petition .actions button,
.carousel-petition .actions input[type="submit"],
.carousel-petition .actions a {
  transition: all 0.2s ease-in-out;
}

.carousel-petition .actions button:hover,
.carousel-petition .actions input[type="submit"]:hover,
.carousel-petition .actions a:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.carousel-petition .actions button:active,
.carousel-petition .actions input[type="submit"]:active,
.carousel-petition .actions a:active {
  transform: translateY(0);
}

/* Viewport-fitted carousel layout */
.carousel-wrapper {
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}

.carousel-content {
  flex: 1;
  min-height: 0;
  margin-top: 15px;
  display: flex;
  flex-direction: column;
}

.carousel-visible-area {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
}

.carousel-petition {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

/* Hide until JS snaps layout to prevent shift on load */
.carousel-petition[data-petition-fill-value="true"] {
  opacity: 0;
}

.carousel-petition[data-petition-fill-value="true"].ready {
  opacity: 1;
}

.carousel-petition > div {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.carousel-petition .p-4 {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.carousel-petition .body {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.carousel-petition .body-text-wrapper {
  flex: 1;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.carousel-petition .body-text {
  flex: 1;
  overflow: hidden;
  min-height: 3rem;
  position: relative;
}

.carousel-petition .body-text.has-overflow::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 5rem;
  background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,0.8));
  pointer-events: none;
}

/* Counter styling */
#remaining_count {
  font-weight: bold;
  color: #4f46e5;
}
/*!
 * Cropper.js v1.6.2
 * https://fengyuanchen.github.io/cropperjs
 *
 * Copyright 2015-present Chen Fengyuan
 * Released under the MIT license
 *
 * Date: 2024-04-21T07:43:02.731Z
 */.cropper-container{-webkit-touch-callout:none;direction:ltr;font-size:0;line-height:0;position:relative;-ms-touch-action:none;touch-action:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:rgba(51,153,255,.75);overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC")}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}
/* Cropper.js overrides — scoped to our admin photo cropper modal so other
   cropper instances (if any are added later) keep the default look. */

/* The default `.cropper-face` is a white overlay at 10% opacity sitting on
   top of the cropped area, which subtly tints the image inside the crop
   box. Inside our crop modal we want to see the source pixels exactly as
   they will be rendered, so make the face fully transparent. */
[data-image-crop-target="cropModal"] .cropper-face {
  background-color: transparent;
  opacity: 1;
}
/* Prevent scrolling while dialog is open */
body:has(dialog[open]) {
    overflow: hidden;
  }
  
  dialog {
    box-shadow: 0 0 0 100vw rgb(0 0 0 / 0.5);
  }
  
  @keyframes fade-in {
    0% {
      opacity: 0;
    }
    100% {
      opacity: 1;
    }
  }
  
  @keyframes fade-out {
    0% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }
  
  dialog[data-dialog-target="dialog"][open] {
    animation: fade-in 200ms forwards;
  }
  
  dialog[data-dialog-target="dialog"][closing] {
    animation: fade-out 200ms forwards;
  }
/* Petition Template CSS Animations */

.animation-success {
  animation: pulse-success 0.5s;
}

@keyframes pulse-success {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
    background-color: #22c55e !important;
    color: white !important;
  }
  100% {
    transform: scale(1);
  }
}

.animation-warning {
  animation: pulse-warning 0.5s;
}

@keyframes pulse-warning {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.1);
    background-color: #f59e0b !important;
    color: white !important;
  }
  100% {
    transform: scale(1);
  }
}

/* Template variable styling */
.template-variable {
  background-color: #e5e7eb;
  color: #111827;
  border-radius: 0.25rem;
  padding: 0.125rem 0.375rem;
  display: inline-flex;
  align-items: center;
  font-weight: 500;
  font-size: 0.875rem;
}

.template-variable-preview {
  color: #059669;
  font-weight: 500;
}
/**
 * tom-select.css (v2.4.3)
 * Copyright (c) contributors
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this
 * file except in compliance with the License. You may obtain a copy of the License at:
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under
 * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 * ANY KIND, either express or implied. See the License for the specific language
 * governing permissions and limitations under the License.
 *
 */
 /*
  * Hide native <select>s wired up with the searchable-select controller until
  * Tom Select finishes initializing (it adds the .tomselected class to the
  * original element on mount). The placeholder block reserves roughly the same
  * height as the rendered .ts-control so the page doesn't jump on load.
  */
 select[data-controller~="searchable-select"]:not(.tomselected),
 select[data-controller~="searchable-checkbox-select"]:not(.tomselected) {
    visibility: hidden;
    height: 38px;
    width: 100%;
    border: 1px solid #d0d0d0;
    border-radius: 0;
    box-sizing: border-box;
    appearance: none;
    background: #fff;
 }
 select[data-controller~="searchable-select"][multiple]:not(.tomselected),
 select[data-controller~="searchable-checkbox-select"][multiple]:not(.tomselected) {
    min-height: 38px;
    height: 38px;
 }

 .ts-control {
    border: 1px solid #d0d0d0;
    padding: 8px 8px;
    width: 100%;
    overflow: hidden;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    box-shadow: none;
    border-radius: 3px;
    display: flex;
    flex-wrap: wrap;
  }
  .ts-wrapper.multi.has-items .ts-control {
    padding: calc(8px - 2px - 0) 8px calc(8px - 2px - 3px - 0);
  }
  .full .ts-control {
    background-color: #fff;
  }
  .disabled .ts-control, .disabled .ts-control * {
    cursor: default !important;
  }
  .focus .ts-control {
    box-shadow: none;
  }
  .ts-control > * {
    vertical-align: baseline;
    display: inline-block;
  }
  .ts-wrapper.multi .ts-control > div {
    cursor: pointer;
    margin: 0 3px 3px 0;
    padding: 2px 6px;
    background: #f2f2f2;
    color: #303030;
    border: 0 solid #d0d0d0;
  }
  .ts-wrapper.multi .ts-control > div.active {
    background: #e8e8e8;
    color: #303030;
    border: 0 solid #cacaca;
  }
  .ts-wrapper.multi.disabled .ts-control > div, .ts-wrapper.multi.disabled .ts-control > div.active {
    color: rgb(124.5, 124.5, 124.5);
    background: white;
    border: 0 solid white;
  }
  .ts-control > input {
    flex: 1 1 auto;
    min-width: 7rem;
    display: inline-block !important;
    padding: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    max-width: 100% !important;
    margin: 0 !important;
    text-indent: 0 !important;
    border: 0 none !important;
    background: none !important;
    line-height: inherit !important;
    -webkit-user-select: auto !important;
       -moz-user-select: auto !important;
        -ms-user-select: auto !important;
            user-select: auto !important;
    box-shadow: none !important;
  }
  .ts-control > input::-ms-clear {
    display: none;
  }
  .ts-control > input:focus {
    outline: none !important;
  }
  .has-items .ts-control > input {
    margin: 0 4px !important;
  }
  .ts-control.rtl {
    text-align: right;
  }
  .ts-control.rtl.single .ts-control:after {
    left: 15px;
    right: auto;
  }
  .ts-control.rtl .ts-control > input {
    margin: 0 4px 0 -2px !important;
  }
  .disabled .ts-control {
    opacity: 0.5;
    background-color: #fafafa;
  }
  .input-hidden .ts-control > input {
    opacity: 0;
    position: absolute;
    left: -10000px;
  }
  
  .ts-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    width: 100%;
    z-index: 10;
    border: 1px solid #d0d0d0;
    background: #fff;
    margin: 0.25rem 0 0;
    border-top: 0 none;
    box-sizing: border-box;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    border-radius: 0 0 3px 3px;
  }
  .ts-dropdown [data-selectable] {
    cursor: pointer;
    overflow: hidden;
  }
  .ts-dropdown [data-selectable] .highlight {
    background: rgba(125, 168, 208, 0.2);
    border-radius: 1px;
  }
  .ts-dropdown .option,
  .ts-dropdown .optgroup-header,
  .ts-dropdown .no-results,
  .ts-dropdown .create {
    padding: 5px 8px;
  }
  .ts-dropdown .option, .ts-dropdown [data-disabled], .ts-dropdown [data-disabled] [data-selectable].option {
    cursor: inherit;
    opacity: 0.5;
  }
  .ts-dropdown [data-selectable].option {
    opacity: 1;
    cursor: pointer;
  }
  .ts-dropdown .optgroup:first-child .optgroup-header {
    border-top: 0 none;
  }
  .ts-dropdown .optgroup-header {
    color: #303030;
    background: #fff;
    cursor: default;
  }
  .ts-dropdown .active {
    background-color: #f5fafd;
    color: #495c68;
  }
  .ts-dropdown .active.create {
    color: #495c68;
  }
  .ts-dropdown .create {
    color: rgba(48, 48, 48, 0.5);
  }
  .ts-dropdown .spinner {
    display: inline-block;
    width: 30px;
    height: 30px;
    margin: 5px 8px;
  }
  .ts-dropdown .spinner::after {
    content: " ";
    display: block;
    width: 24px;
    height: 24px;
    margin: 3px;
    border-radius: 50%;
    border: 5px solid #d0d0d0;
    border-color: #d0d0d0 transparent #d0d0d0 transparent;
    animation: lds-dual-ring 1.2s linear infinite;
  }

  .ts-wrapper.searchable-select-multi .ts-control {
    align-items: flex-start;
    row-gap: 0.25rem;
  }

  .ts-wrapper.searchable-select-multi .ts-control > input {
    min-width: 5rem;
  }

  /* Multi-select with checkmarked options that stay visible in the dropdown
     and a "+N more" pill once more than max-visible items are selected. */
  .ts-wrapper.checkbox-select-multi .ts-control {
    align-items: center;
    flex-wrap: nowrap;
    overflow: hidden;
    column-gap: 0.25rem;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > .item {
    flex: 0 0 auto;
    max-width: 8rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > .item.chip-hidden {
    display: none;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > .chip-overflow {
    flex: 0 0 auto;
    background: #eef2ff;
    color: #4338ca;
    border-radius: 9999px;
    padding: 0 0.5rem;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 500;
    white-space: nowrap;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > input {
    min-width: 3rem;
    flex: 1 1 auto;
  }

  /* Decorations rendered inside option rows / selected items */
  .ts-wrapper .option-row {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-width: 0;
    vertical-align: middle;
  }

  .ts-wrapper .option-row .option-label {
    flex: 1 1 auto;
    min-width: 0;
  }

  /* Make every dropdown option fill its row so the hover highlight isn't
     limited to the inline-flex content. */
  .ts-dropdown .option,
  .ts-dropdown [data-selectable].option {
    display: flex;
    align-items: center;
    width: 100%;
  }

  .ts-wrapper .item-row {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
    min-width: 0;
    max-width: 100%;
  }

  .ts-wrapper .item-row .item-label {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .ts-wrapper .option-color {
    display: inline-block;
    width: 0.625rem;
    height: 0.625rem;
    border-radius: 9999px;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.1);
    flex: 0 0 auto;
  }

  .ts-wrapper .option-icon {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
  }

  .ts-wrapper .option-icon svg {
    width: 1rem;
    height: 1rem;
  }

  /* Selected-chip styling for the checkbox-select-multi wrapper. Chips are
     always white with black text; the border color is driven by --chip-border
     (set inline from the option's accent/state color, with a neutral fallback). */
  .ts-wrapper.checkbox-select-multi .ts-control > .item {
    background: #ffffff;
    color: #111827;
    border: 1px solid var(--chip-border, #d1d5db);
    border-radius: 9999px;
    padding: 0.125rem 0.5rem;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1.25rem;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > .item.active {
    background: #ffffff;
    color: #111827;
    border-color: var(--chip-border, #9ca3af);
    box-shadow: 0 0 0 1px var(--chip-border, #9ca3af);
  }

  /* Non-searchable variant: hide the inline control input visually but keep
     it focusable so it remains in the tab order (Space/Enter opens the
     dropdown via Tom Select's own keydown handling). */
  .ts-wrapper.checkbox-select-no-search .ts-control > input {
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    opacity: 0;
    caret-color: transparent;
  }

  /* Search input rendered inside the dropdown (dropdown_input plugin) */
  .ts-dropdown .dropdown-input-wrap {
    padding: 0.5rem;
    border-bottom: 1px solid #e5e7eb;
    background: #f9fafb;
  }

  .ts-dropdown .dropdown-input {
    display: block;
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 0.375rem;
    padding: 0.375rem 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    background: #fff;
    box-shadow: none;
  }

  .ts-dropdown .dropdown-input:focus {
    outline: none;
    border-color: #4f46e5;
    box-shadow: 0 0 0 1px #4f46e5;
  }
  @keyframes lds-dual-ring {
    0% {
      transform: rotate(0deg);
    }
    100% {
      transform: rotate(360deg);
    }
  }
  
  .ts-dropdown-content {
    overflow: hidden auto;
    max-height: 200px;
    scroll-behavior: smooth;
  }
  
  .ts-wrapper.plugin-drag_drop .ts-dragging {
    color: transparent !important;
  }
  .ts-wrapper.plugin-drag_drop .ts-dragging > * {
    visibility: hidden !important;
  }
  
  .plugin-checkbox_options:not(.rtl) .option input {
    margin-right: 0.5rem;
  }
  
  .plugin-checkbox_options.rtl .option input {
    margin-left: 0.5rem;
  }
  
  /* stylelint-disable function-name-case */
  .plugin-clear_button {
    --ts-pr-clear-button: 1em;
  }
  .plugin-clear_button .clear-button {
    opacity: 0;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: calc(8px - 6px);
    margin-right: 0 !important;
    background: transparent !important;
    transition: opacity 0.5s;
    cursor: pointer;
  }
  .plugin-clear_button.form-select .clear-button, .plugin-clear_button.single .clear-button {
    right: max(var(--ts-pr-caret), 8px);
  }
  .plugin-clear_button.focus.has-items .clear-button, .plugin-clear_button:not(.disabled):hover.has-items .clear-button {
    opacity: 1;
  }
  
  .ts-wrapper .dropdown-header {
    position: relative;
    padding: 10px 8px;
    border-bottom: 1px solid #d0d0d0;
    background: color-mix(#fff, #d0d0d0, 85%);
    border-radius: 3px 3px 0 0;
  }
  .ts-wrapper .dropdown-header-close {
    position: absolute;
    right: 8px;
    top: 50%;
    color: #303030;
    opacity: 0.4;
    margin-top: -12px;
    line-height: 20px;
    font-size: 20px !important;
  }
  .ts-wrapper .dropdown-header-close:hover {
    color: black;
  }
  
  .plugin-dropdown_input.focus.dropdown-active .ts-control {
    box-shadow: none;
    border: 1px solid #d0d0d0;
  }
  .plugin-dropdown_input .dropdown-input {
    border: 1px solid #d0d0d0;
    border-width: 0 0 1px;
    display: block;
    padding: 8px 8px;
    box-shadow: none;
    width: 100%;
    background: transparent;
  }
  .plugin-dropdown_input .items-placeholder {
    border: 0 none !important;
    box-shadow: none !important;
    width: 100%;
  }
  .plugin-dropdown_input.has-items .items-placeholder, .plugin-dropdown_input.dropdown-active .items-placeholder {
    display: none !important;
  }
  
  .ts-wrapper.plugin-input_autogrow.has-items .ts-control > input {
    min-width: 0;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input {
    flex: none;
    min-width: 4px;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::-ms-input-placeholder {
    color: transparent;
  }
  .ts-wrapper.plugin-input_autogrow.has-items.focus .ts-control > input::placeholder {
    color: transparent;
  }
  
  .ts-dropdown.plugin-optgroup_columns .ts-dropdown-content {
    display: flex;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup {
    border-right: 1px solid #f2f2f2;
    border-top: 0 none;
    flex-grow: 1;
    flex-basis: 0;
    min-width: 0;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup:last-child {
    border-right: 0 none;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup::before {
    display: none;
  }
  .ts-dropdown.plugin-optgroup_columns .optgroup-header {
    border-top: 0 none;
  }
  
  .ts-wrapper.plugin-remove_button .item {
    display: inline-flex;
    align-items: center;
  }
  .ts-wrapper.plugin-remove_button .item .remove {
    color: inherit;
    text-decoration: none;
    vertical-align: middle;
    display: inline-block;
    padding: 0 6px;
    border-radius: 0 2px 2px 0;
    box-sizing: border-box;
  }
  .ts-wrapper.plugin-remove_button .item .remove:hover {
    background: rgba(0, 0, 0, 0.05);
  }
  .ts-wrapper.plugin-remove_button.disabled .item .remove:hover {
    background: none;
  }
  .ts-wrapper.plugin-remove_button .remove-single {
    position: absolute;
    right: 0;
    top: 0;
    font-size: 23px;
  }
  
  .ts-wrapper.plugin-remove_button:not(.rtl) .item {
    padding-right: 0 !important;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl) .item .remove {
    border-left: 1px solid #d0d0d0;
    margin-left: 6px;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl) .item.active .remove {
    border-left-color: #cacaca;
  }
  .ts-wrapper.plugin-remove_button:not(.rtl).disabled .item .remove {
    border-left-color: white;
  }
  
  .ts-wrapper.plugin-remove_button.rtl .item {
    padding-left: 0 !important;
  }
  .ts-wrapper.plugin-remove_button.rtl .item .remove {
    border-right: 1px solid #d0d0d0;
    margin-right: 6px;
  }
  .ts-wrapper.plugin-remove_button.rtl .item.active .remove {
    border-right-color: #cacaca;
  }
  .ts-wrapper.plugin-remove_button.rtl.disabled .item .remove {
    border-right-color: white;
  }
  
  :root {
    --ts-pr-clear-button: 0px;
    --ts-pr-caret: 0px;
    --ts-pr-min: .75rem;
  }
  
  .ts-wrapper.single .ts-control, .ts-wrapper.single .ts-control input {
    cursor: pointer;
  }
  
  .ts-control:not(.rtl) {
    padding-right: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
  }
  
  .ts-control.rtl {
    padding-left: max(var(--ts-pr-min), var(--ts-pr-clear-button) + var(--ts-pr-caret)) !important;
  }
  
  .ts-wrapper {
    position: relative;
  }
  
  .ts-dropdown,
  .ts-control,
  .ts-control input {
    color: #303030;
    font-family: inherit;
    font-size: 13px;
    line-height: 18px;
  }
  
  .ts-control,
  .ts-wrapper.single.input-active .ts-control {
    background: #fff;
    cursor: text;
  }
  
  .ts-hidden-accessible {
    border: 0 !important;
    clip: rect(0 0 0 0) !important;
    -webkit-clip-path: inset(50%) !important;
            clip-path: inset(50%) !important;
    overflow: hidden !important;
    padding: 0 !important;
    position: absolute !important;
    width: 1px !important;
    white-space: nowrap !important;
  }

  /*
   * ---------------------------------------------------------------------------
   * Admin filter input normalization
   *
   * - Square corners on every filter input (search fields + tom-select controls)
   * - Fixed minimum height so adding chips doesn't grow the control vertically
   * - Custom small × clear button styled to match the dropdown clear icon
   * - Clicks on existing chips fall through to the control so the dropdown
   *   still opens
   * ---------------------------------------------------------------------------
   */

  .av-input {
    border-radius: 0 !important;
    height: 2.375rem;
    padding: 0 0.625rem;
    box-sizing: border-box;
  }

  .av-input::-webkit-search-cancel-button {
    -webkit-appearance: none;
    appearance: none;
    height: 1.25rem;
    width: 1.25rem;
    background-color: #6b7280;
    -webkit-mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'><path fill-rule='evenodd' d='M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z' clip-rule='evenodd'/></svg>");
            mask-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20' fill='currentColor'><path fill-rule='evenodd' d='M10 18a8 8 0 100-16 8 8 0 000 16zM8.28 7.22a.75.75 0 00-1.06 1.06L8.94 10l-1.72 1.72a.75.75 0 101.06 1.06L10 11.06l1.72 1.72a.75.75 0 101.06-1.06L11.06 10l1.72-1.72a.75.75 0 00-1.06-1.06L10 8.94 8.28 7.22z' clip-rule='evenodd'/></svg>");
    -webkit-mask-repeat: no-repeat;
            mask-repeat: no-repeat;
    -webkit-mask-position: center;
            mask-position: center;
    cursor: pointer;
    margin-left: 0.25rem;
  }

  .av-input::-webkit-search-cancel-button:hover {
    background-color: #374151;
  }

  /* Sort select shares the same shape/height. */
  span.sort-select select {
    border-radius: 0 !important;
    height: 2.375rem;
    padding-top: 0;
    padding-bottom: 0;
  }

  /* Tom-select controls in this admin form: square corners, fixed min-height,
     consistent ring. */
  .ts-wrapper.checkbox-select-multi {
    width: 100%;
  }

  .ts-wrapper.checkbox-select-multi .ts-control {
    border-radius: 0 !important;
    border: 0;
    box-shadow: inset 0 0 0 1px #d1d5db, 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    min-height: 2.375rem;
    height: 2.375rem;
    overflow: hidden;
    padding: 0 1.75rem 0 0.625rem;
    align-items: center;
    flex-wrap: nowrap;
    background: #fff;
  }

  .ts-wrapper.checkbox-select-multi.focus .ts-control,
  .ts-wrapper.checkbox-select-multi .ts-control:focus-within {
    box-shadow: inset 0 0 0 2px #4f46e5;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > input {
    height: auto;
    line-height: 1.25rem;
    font-size: 0.875rem;
    margin: 0 !important;
  }

  /* Selected chips: don't grow the control, don't trap clicks. */
  .ts-wrapper.checkbox-select-multi .ts-control > .item {
    margin: 0;
    height: 1.5rem;
    line-height: 1.25rem;
    pointer-events: none;
    user-select: none;
  }

  .ts-wrapper.checkbox-select-multi .ts-control > .chip-overflow {
    margin: 0;
    height: 1.5rem;
    line-height: 1.5rem;
    pointer-events: none;
  }

  /* Override the earlier broader rule that bumped padding when items exist. */
  .ts-wrapper.checkbox-select-multi.has-items .ts-control {
    padding-right: 1.75rem;
  }

  /* Override the earlier ts-wrapper.multi.has-items padding adjustment. */
  .ts-wrapper.checkbox-select-multi.multi.has-items .ts-control {
    padding: 0 1.75rem 0 0.625rem;
  }

  /* Clear button (small × inside the control) — sized and positioned to match
     the inputs and the .av-input cancel button. */
  .ts-wrapper.checkbox-select-multi .clear-button {
    width: 1.25rem;
    height: 1.25rem;
    right: 0.5rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9999px;
    color: #6b7280;
    font-size: 1rem;
    line-height: 1;
  }

  .ts-wrapper.checkbox-select-multi.has-items .clear-button {
    opacity: 1;
  }

  .ts-wrapper.checkbox-select-multi .clear-button:hover {
    background: #f3f4f6 !important;
    color: #374151;
  }

 
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */

 .pagy {
    display: flex;
    font-family: sans-serif;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    color: #6b7280;
  }
  .pagy > :not([hidden]) ~ :not([hidden]) {
    --space-reverse: 0;
    margin-right: calc(0.25rem * var(--space-reverse));
    margin-left: calc(0.25rem * calc(1 - var(--space-reverse)));
  }
  .pagy a:not(.gap) {
    display: block;
    text-decoration: none;
    border-radius: 0.5rem;
    background-color: #e5e7eb;
    padding: 0.25rem 0.75rem;
    color: inherit;
  }
  .pagy a:not(.gap):hover {
    background-color: #d1d5db;
  }
  .pagy a:not(.gap):not([href]) { /* disabled links */
    cursor: default;
    background-color: #f3f4f6;
    color: #d1d5db;
  }
  .pagy a:not(.gap).current {
    background-color: #9ca3af;
    color: white;
  }
  .pagy label {
    white-space: nowrap;
    display: inline-block;
    border-radius: 0.5rem;
    background-color: #e5e7eb;
    padding: 0.125rem 0.75rem;
  }
  .pagy label input {
    line-height: 1.5rem;
    border-radius: 0.375rem;
    border-style: none;
    background-color: #f3f4f6;
  }

  .stacked .petition-body {
    display: none;
  }
  
  .stacked .petition-extras {
    display: none;
  }

  .petition {
    width: 100%;
  }

  .stack {
    display: inline-grid;
    place-items: start;
    align-items: flex-start;
  }
  
  .stack .removed {
    display: none;
  }
  
  .stack .back .petition-body {
    display: none;
  }
  
  .stack .back .petition-extras {
    display: none;
  }
  
  .stack .back .header {
    visibility: hidden;
  }
  
  .stack .front .petition-body {
    display: block;
  }
  
  .stack .front .petition-extras {
    display: block;
  }
  
  .stack .front .header {
    visibility: visible;
  }

  .stack>* {
    grid-column-start: 1;
    grid-row-start: 1;
  }
