.chats-settings {
  --settings-panel: var(--ui-panel);
  --settings-inset: var(--ui-inset);
  --settings-line: var(--ui-line);
  --settings-text: var(--ui-text);
  --settings-muted: var(--ui-muted);
  --settings-accent: var(--ui-orange);
  box-sizing: border-box;
  width: min(460px, calc(100vw - 32px));
  max-width: none;
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: 0;
  border: 1px solid var(--ui-edge);
  border-radius: 18px;
  background: var(--ui-glass), var(--settings-panel);
  color: var(--settings-text);
  box-shadow: var(--ui-pop-shadow);
  font-family: inherit;
  font-size: 13px;
  line-height: 1.5;
  color-scheme: dark;
  overflow: auto;
  overscroll-behavior: contain;
  animation: chats-settings-open 140ms ease-out;
}

.chats-settings *,
.chats-settings *::before,
.chats-settings *::after {
  box-sizing: border-box;
}

.chats-settings::backdrop {
  background: color-mix(in srgb, var(--ui-ground) 78%, transparent);
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}

.chats-settings[open].chats-settings-full {
  display: grid;
  grid-template-columns: 210px minmax(0, 1fr);
  width: min(1100px, calc(100vw - 32px));
  height: min(820px, calc(100dvh - 32px));
  overflow: hidden;
}

.chats-settings [hidden] {
  display: none !important;
}

.chats-settings-main {
  min-width: 0;
  min-height: 0;
  padding: 28px;
}

.chats-settings-full .chats-settings-main {
  padding: 28px 32px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.chats-settings,
.chats-settings :is(.chats-settings-main, .chats-settings-nav, .chats-settings-search-results, textarea) {
  scrollbar-width: thin;
  scrollbar-color: var(--ui-edge) transparent;
}

.chats-settings h2 {
  margin: 0 40px 24px 0;
  font-size: 21px;
  font-weight: 750;
  letter-spacing: -.035em;
  overflow-wrap: anywhere;
}

.chats-settings h3 {
  margin: 24px 0 12px;
  color: var(--settings-text);
  font-size: 13px;
  font-weight: 700;
}

.chats-settings-body {
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
}

.chats-settings button {
  --btn-rest: var(--ui-button-rest) !important;
  --btn-hover: var(--ui-button-hover) !important;
  --btn-active: var(--ui-button-active) !important;
  --btn-border: var(--ui-button-edge) !important;
  --btn-border-hover: var(--ui-edge) !important;
  --btn-color: var(--settings-text) !important;
  --btn-color-hover: var(--settings-text) !important;
  --btn-role-shadow: var(--ui-button-glow) !important;
  --btn-radius: 8px !important;
  min-height: 34px;
  border: 1px solid var(--ui-button-edge);
  border-radius: 8px;
  padding: 7px 11px;
  background: var(--ui-button-rest), var(--ui-raised);
  color: var(--settings-text);
  box-shadow: var(--ui-button-glow);
  font: inherit;
  font-weight: 600;
  line-height: 1.4;
  cursor: pointer;
  transition: background .16s, border-color .16s, color .16s, box-shadow .16s;
}

.chats-settings button:hover:not(:disabled) {
  border-color: var(--ui-edge);
  background: var(--ui-button-hover), var(--ui-raised);
  box-shadow: var(--ui-button-glow-hover);
}

.chats-settings button:active:not(:disabled) {
  background: var(--ui-button-active), var(--ui-raised);
}

.chats-settings :is(button, input, select, textarea):focus-visible {
  outline: 2px solid var(--ui-bright);
  outline-offset: 3px;
}

.chats-settings :is(button, input, select, textarea):disabled {
  opacity: .55;
  cursor: not-allowed;
  box-shadow: none;
}

.chats-settings .chats-settings-close {
  --btn-radius: 50% !important;
  --btn-color: var(--settings-muted) !important;
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 2;
  display: grid;
  place-items: center;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  min-height: 0;
  padding: 0;
  color: var(--settings-muted);
}

.chats-settings-nav {
  min-width: 0;
  min-height: 0;
  padding: 32px 12px 24px;
  background: var(--settings-inset);
  border-right: 1px solid var(--settings-line);
  overflow-y: auto;
  overscroll-behavior: contain;
}

.chats-settings-nav h3 {
  margin: 0 10px 18px;
  color: var(--settings-muted);
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .1em;
  text-transform: uppercase;
  overflow-wrap: anywhere;
}

.chats-settings-nav button,
.chats-settings-subjects > button,
.chats-settings-search-results button {
  --btn-rest: var(--btn-ghost-rest) !important;
  --btn-border: transparent !important;
  --btn-role-shadow: none !important;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  width: 100%;
  margin-bottom: 4px;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  text-align: left;
  overflow-wrap: anywhere;
}

.chats-settings button:is([aria-current="true"], [aria-pressed="true"]) {
  --btn-rest: var(--ui-button-active) !important;
  --btn-border: var(--ui-button-edge) !important;
  --btn-color: var(--ui-bright) !important;
  border-color: var(--ui-button-edge);
  background: var(--ui-button-active);
  color: var(--ui-bright);
}

.chats-settings-lock-badge {
  flex-shrink: 0;
  padding: 2px 5px;
  border: 1px solid var(--settings-line);
  border-radius: 5px;
  color: var(--ui-dim);
  font-size: 9px;
  font-weight: 650;
  letter-spacing: .025em;
}

.chats-settings-field {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-bottom: 20px;
  color: var(--settings-muted);
  font-size: 11px;
  font-weight: 650;
}

.chats-settings-field :is(input:not([type="checkbox"]), select, textarea) {
  width: 100%;
  min-width: 0;
  min-height: 38px;
  padding: 9px 11px;
  border: 1px solid var(--settings-line);
  border-radius: 8px;
  background: var(--settings-inset);
  color: var(--settings-text);
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.5;
  transition: border-color .16s, box-shadow .16s;
}

.chats-settings-field :is(input, textarea)::placeholder {
  color: var(--ui-dim);
  opacity: 1;
}

.chats-settings-field :is(input, select, textarea):hover:not(:disabled) {
  border-color: var(--ui-edge);
}

.chats-settings-field textarea {
  min-height: 100px;
  resize: vertical;
}

.chats-settings-chat-name {
  position: relative;
}

.chats-settings-chat-name::after {
  content: '#';
  position: absolute;
  bottom: 9px;
  left: 12px;
  color: var(--ui-dim);
  font-size: 14px;
  pointer-events: none;
}

.chats-settings-chat-name input {
  padding-left: 30px !important;
}

.chats-settings-toggle {
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding: 14px 0;
  border-bottom: 1px solid var(--settings-line);
  color: var(--settings-text);
  font-size: 13px;
}

.chats-settings-toggle small {
  display: block;
  margin-top: 3px;
  color: var(--settings-muted);
  font-size: 12px;
  font-weight: 400;
}

.chats-settings-toggle input {
  appearance: none;
  flex-shrink: 0;
  width: 38px;
  height: 22px;
  margin: 0;
  border: 1px solid var(--settings-line);
  border-radius: 20px;
  background: var(--ui-raised);
  cursor: pointer;
  transition: background .16s, border-color .16s;
}

.chats-settings-toggle input::before {
  content: '';
  display: block;
  width: 14px;
  height: 14px;
  margin: 3px;
  border-radius: 50%;
  background: var(--settings-muted);
  transition: transform .16s, background .16s;
}

.chats-settings-toggle input:checked {
  border-color: var(--settings-accent);
  background: var(--ui-button-active);
}

.chats-settings-toggle input:checked::before {
  transform: translateX(16px);
  background: var(--ui-bright);
}

.chats-settings-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
}

.chats-settings .chats-settings-primary {
  --btn-rest: var(--btn-primary-rest) !important;
  --btn-hover: var(--btn-primary-hover) !important;
  --btn-active: var(--btn-primary-active) !important;
  --btn-border: var(--btn-primary-border) !important;
  --btn-border-hover: var(--btn-primary-border-hover) !important;
  --btn-color: var(--ui-bright) !important;
  --btn-color-hover: var(--ui-bright) !important;
  background: var(--btn-primary-rest), var(--ui-raised);
  border-color: var(--btn-primary-border);
  color: var(--ui-bright);
}

.chats-settings .chats-settings-primary:hover:not(:disabled) {
  background: var(--btn-primary-hover), var(--ui-raised);
  border-color: var(--btn-primary-border-hover);
}

.chats-settings .chats-settings-danger {
  --btn-rest: var(--btn-danger-rest) !important;
  --btn-hover: var(--btn-danger-hover) !important;
  --btn-active: var(--btn-danger-active) !important;
  --btn-border: var(--btn-danger-border) !important;
  --btn-border-hover: var(--btn-danger-border-hover) !important;
  --btn-color: color-mix(in srgb, var(--danger) 65%, var(--settings-text)) !important;
  --btn-color-hover: var(--btn-color) !important;
  background: var(--btn-danger-rest);
  border-color: var(--btn-danger-border);
  color: color-mix(in srgb, var(--danger) 65%, var(--settings-text));
}

.chats-settings .chats-settings-danger:hover:not(:disabled) {
  background: var(--btn-danger-hover);
  border-color: var(--btn-danger-border-hover);
}

.chats-settings :is(.chats-settings-error, .chats-settings-status, .chats-settings-note) {
  margin: 12px 0;
  color: var(--settings-muted);
  font-size: 12px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.chats-settings .chats-settings-error {
  padding: 10px 12px;
  border: 1px solid var(--btn-danger-border);
  border-radius: 8px;
  background: var(--btn-danger-rest);
  color: color-mix(in srgb, var(--danger) 55%, var(--settings-text));
}

.chats-settings :is(.chats-settings-error, .chats-settings-status, .chats-settings-sync, .chats-settings-search-results):empty {
  display: none;
}

.chats-settings-unsaved {
  position: sticky;
  bottom: 0;
  z-index: 1;
  padding: 12px;
  border: 1px solid var(--ui-edge);
  border-radius: 10px;
  background: var(--settings-inset);
  box-shadow: var(--ui-shadow);
}

.chats-settings-unsaved-note {
  flex: 1 1 160px;
  color: var(--settings-muted);
  font-size: 12px;
}

.chats-settings-sync {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border: 1px solid var(--settings-line);
  border-radius: 10px;
  background: var(--settings-inset);
  color: var(--settings-muted);
}

.chats-settings-sync p {
  flex: 1 1 160px;
  margin: 0;
  overflow-wrap: anywhere;
}

.chats-settings-permissions-layout {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  gap: 24px;
  margin-top: 20px;
}

.chats-settings-subjects {
  min-width: 0;
}

.chats-settings-subjects .chats-settings-field {
  margin: 20px 0 8px;
}

.chats-settings-search-results {
  max-height: 240px;
  overflow-y: auto;
  color: var(--settings-muted);
  font-size: 12px;
}

.chats-settings-permission-detail {
  min-width: 0;
  container-type: inline-size;
}

.chats-settings-detail-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.chats-settings-detail-heading h3 {
  min-width: 0;
  margin: 0;
  font-size: 15px;
  overflow-wrap: anywhere;
}

.chats-settings-detail-heading button {
  font-size: 11px;
}

.chats-settings-permission {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--settings-line);
}

.chats-settings-permission strong {
  font-size: 13px;
  font-weight: 650;
}

.chats-settings-permission p {
  margin: 4px 0 0;
  color: var(--settings-muted);
  font-size: 12px;
  overflow-wrap: anywhere;
}

.chats-settings-permission-locked strong {
  color: var(--ui-dim);
}

.chats-settings-permission-locked p {
  color: var(--ui-dim);
}

.chats-settings-tristate {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 3px;
  padding: 3px;
  border: 1px solid var(--settings-line);
  border-radius: 10px;
  background: var(--settings-inset);
}

.chats-settings-tristate button {
  --btn-rest: var(--btn-ghost-rest) !important;
  --btn-border: transparent !important;
  --btn-color: var(--ui-dim) !important;
  --btn-role-shadow: none !important;
  min-width: 60px;
  min-height: 30px;
  padding: 5px 7px;
  border-color: transparent;
  background: transparent;
  box-shadow: none;
  color: var(--ui-dim);
  font-size: 11px;
  white-space: nowrap;
}

.chats-settings-tristate button[aria-checked="true"][data-value="-1"] {
  --btn-rest: var(--btn-danger-active) !important;
  --btn-hover: var(--btn-danger-hover) !important;
  --btn-active: var(--btn-danger-active) !important;
  --btn-border: var(--btn-danger-border) !important;
  --btn-border-hover: var(--btn-danger-border-hover) !important;
  --btn-color: color-mix(in srgb, var(--danger) 65%, var(--settings-text)) !important;
  --btn-color-hover: var(--btn-color) !important;
  border-color: var(--btn-danger-border);
  background: var(--btn-danger-active);
  color: color-mix(in srgb, var(--danger) 65%, var(--settings-text));
}

.chats-settings-tristate button[aria-checked="true"][data-value="0"] {
  --btn-rest: var(--btn-neutral-rest) !important;
  --btn-hover: var(--btn-neutral-hover) !important;
  --btn-active: var(--btn-neutral-active) !important;
  --btn-border: var(--settings-line) !important;
  --btn-border-hover: var(--ui-edge) !important;
  --btn-color: var(--settings-text) !important;
  border-color: var(--settings-line);
  background: var(--ui-raised);
  color: var(--settings-text);
}

.chats-settings-tristate button[aria-checked="true"][data-value="1"],
.chats-settings-switch button[aria-checked="true"] {
  --btn-rest: var(--btn-success-active) !important;
  --btn-hover: var(--btn-success-hover) !important;
  --btn-active: var(--btn-success-active) !important;
  --btn-border: var(--btn-success-border) !important;
  --btn-border-hover: var(--btn-success-border-hover) !important;
  --btn-color: color-mix(in srgb, var(--green) 65%, var(--settings-text)) !important;
  --btn-color-hover: var(--btn-color) !important;
  border-color: var(--btn-success-border);
  background: var(--btn-success-active);
  color: color-mix(in srgb, var(--green) 65%, var(--settings-text));
}

.chats-settings-switch button {
  min-width: 58px;
}

@container (max-width: 450px) {
  .chats-settings-permission {
    grid-template-columns: minmax(0, 1fr);
  }

  .chats-settings-tristate {
    justify-self: start;
  }
}

@keyframes chats-settings-open {
  from { opacity: 0; transform: translateY(6px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 760px) {
  .chats-settings[open].chats-settings-full {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
  }

  .chats-settings-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    max-height: 34dvh;
    padding: 18px 52px 14px 18px;
    border-right: 0;
    border-bottom: 1px solid var(--settings-line);
  }

  .chats-settings-nav h3 {
    flex-basis: 100%;
    margin: 0 0 4px;
  }

  .chats-settings-nav button {
    width: auto;
    margin: 0;
    font-size: 12px;
  }

  .chats-settings-main,
  .chats-settings-full .chats-settings-main {
    padding: 24px 18px;
  }

  .chats-settings-permissions-layout {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .chats-settings-subjects {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--settings-line);
  }

  .chats-settings-subjects > button {
    width: auto;
    margin: 0;
    font-size: 12px;
  }

  .chats-settings-subjects :is(.chats-settings-field, .chats-settings-search-results) {
    flex-basis: 100%;
  }
}

@media (max-width: 420px) {
  .chats-settings,
  .chats-settings[open].chats-settings-full {
    width: calc(100vw - 16px);
    max-height: calc(100dvh - 16px);
    border-radius: 12px;
  }

  .chats-settings[open].chats-settings-full {
    height: calc(100dvh - 16px);
  }

  .chats-settings-permission {
    gap: 10px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .chats-settings {
    animation: none;
  }

  .chats-settings *,
  .chats-settings *::before {
    transition: none;
  }
}
