.apps-modal {
  width: min(1180px, calc(100vw - 48px));
  max-height: calc(100vh - 48px);
}

.apps-modal-copy,
.cad-shared-apps-copy {
  margin: 6px 0 0;
  color: var(--muted, #5f7184);
  font-size: 0.84rem;
  line-height: 1.5;
  white-space: normal;
}

.app-launcher,
.cad-shared-apps-shell {
  margin-top: 28px;
}

.app-launcher-grid,
.apps-launcher,
.cad-shared-apps-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 26px 28px;
}

.app-launcher-message,
.empty-state {
  grid-column: 1 / -1;
  min-height: 92px;
  display: flex;
  align-items: center;
  padding: 18px 20px;
  border: 1px dashed rgba(108, 126, 145, 0.32);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.56);
  color: var(--muted, #5f7184);
  font-size: 0.92rem;
  line-height: 1.45;
}

.app-launcher-message.error {
  border-color: var(--cad-auth-status-error-border, rgba(185, 28, 28, 0.18));
  background: var(--cad-auth-status-error-bg, rgba(185, 28, 28, 0.08));
  color: var(--cad-auth-status-error-text, #a41515);
}

.apps-modal.is-app-count-many,
.apps-modal.is-app-count-large,
.apps-modal.is-app-count-dense {
  width: min(1180px, calc(100vw - 48px));
}

.app-launcher-grid.is-app-count-many,
.app-launcher-grid.is-app-count-large,
.apps-launcher.is-app-count-many,
.apps-launcher.is-app-count-large,
.cad-shared-apps-grid.is-app-count-many,
.cad-shared-apps-grid.is-app-count-large {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px 24px;
}

.app-launcher-grid.is-app-count-dense,
.apps-launcher.is-app-count-dense,
.cad-shared-apps-grid.is-app-count-dense {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px 18px;
}

.app-tile,
.cad-shared-app-tile {
  --launcher-accent: #4d9cdd;
  position: relative;
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr) 24px;
  align-items: center;
  gap: 18px;
  min-width: 0;
  min-height: 112px;
  padding: 20px 18px;
  border: 1px solid rgba(108, 126, 145, 0.20);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.94);
  color: var(--ink, #243241);
  text-decoration: none;
  overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.92),
    0 14px 28px rgba(15, 23, 42, 0.05);
  transform: none;
  transition:
    background 0.16s ease,
    border-color 0.16s ease,
    box-shadow 0.16s ease;
}

.app-tile:not(.is-current):hover,
.app-tile:not(.is-current):focus-visible,
.cad-shared-app-tile:not(.is-current):hover,
.cad-shared-app-tile:not(.is-current):focus-visible {
  border-color: rgba(77, 156, 221, 0.34);
  background: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.96),
    0 18px 34px rgba(15, 23, 42, 0.075);
  outline: none;
}

.app-tile::before,
.app-tile::after,
.cad-shared-app-tile::before,
.cad-shared-app-tile::after {
  display: none;
}

.app-tile.is-current,
.cad-shared-app-tile.is-current {
  cursor: default;
  opacity: 1;
  filter: none;
  border-color: rgba(77, 156, 221, 0.34);
  background: rgba(238, 247, 255, 0.62);
  box-shadow:
    inset 0 0 0 1px rgba(77, 156, 221, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.94),
    0 14px 28px rgba(15, 23, 42, 0.05);
}

.app-tile.is-current:hover,
.app-tile.is-current:focus-visible,
.cad-shared-app-tile.is-current:hover,
.cad-shared-app-tile.is-current:focus-visible {
  outline: none;
  box-shadow:
    inset 0 0 0 1px rgba(77, 156, 221, 0.20),
    inset 0 1px 0 rgba(255, 255, 255, 0.94),
    0 14px 28px rgba(15, 23, 42, 0.05);
}

.app-tile.blue,
.app-tile[data-theme="blue"],
.cad-shared-app-tile.blue,
.cad-shared-app-tile[data-theme="blue"] {
  --launcher-accent: #4d9cdd;
}

.app-tile.navy-blue,
.app-tile[data-theme="navy-blue"],
.cad-shared-app-tile.navy-blue,
.cad-shared-app-tile[data-theme="navy-blue"] {
  --launcher-accent: #21446f;
}

.app-tile.green,
.app-tile[data-theme="green"],
.cad-shared-app-tile.green,
.cad-shared-app-tile[data-theme="green"] {
  --launcher-accent: #2db7a6;
}

.app-tile.orange,
.app-tile[data-theme="orange"],
.cad-shared-app-tile.orange,
.cad-shared-app-tile[data-theme="orange"] {
  --launcher-accent: #ef9f4f;
}

.app-tile.purple,
.app-tile[data-theme="purple"],
.cad-shared-app-tile.purple,
.cad-shared-app-tile[data-theme="purple"] {
  --launcher-accent: #7c5cc4;
}

.app-tile.teal,
.app-tile[data-theme="teal"],
.cad-shared-app-tile.teal,
.cad-shared-app-tile[data-theme="teal"] {
  --launcher-accent: #2ba79a;
}

.app-tile.slate,
.app-tile[data-theme="slate"],
.cad-shared-app-tile.slate,
.cad-shared-app-tile[data-theme="slate"] {
  --launcher-accent: #5f7184;
}

.app-tile.graphite,
.app-tile[data-theme="graphite"],
.cad-shared-app-tile.graphite,
.cad-shared-app-tile[data-theme="graphite"] {
  --launcher-accent: #243241;
}

.app-tile.pink,
.app-tile[data-theme="pink"],
.cad-shared-app-tile.pink,
.cad-shared-app-tile[data-theme="pink"] {
  --launcher-accent: #dd6ba0;
}

.app-tile.red,
.app-tile[data-theme="red"],
.cad-shared-app-tile.red,
.cad-shared-app-tile[data-theme="red"] {
  --launcher-accent: #d95c5c;
}

.app-tile.yellow,
.app-tile[data-theme="yellow"],
.cad-shared-app-tile.yellow,
.cad-shared-app-tile[data-theme="yellow"] {
  --launcher-accent: #e3be45;
}

.app-tile-badge,
.cad-shared-app-badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: var(--launcher-accent);
  color: #ffffff;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    0 12px 22px rgba(15, 23, 42, 0.10);
  font-size: 1rem;
  font-weight: 850;
  letter-spacing: 0.02em;
  line-height: 1;
  text-transform: uppercase;
}

.app-tile-copy,
.cad-shared-app-copy {
  position: relative;
  z-index: 1;
  display: grid;
  gap: 7px;
  min-width: 0;
}

.app-tile-title-row,
.cad-shared-app-title-row {
  display: block;
  min-width: 0;
}

.app-tile-label,
.cad-shared-app-label {
  position: static;
  z-index: auto;
  margin: 0;
  display: block;
  color: var(--ink, #243241);
  font-size: 1rem;
  font-weight: 850;
  line-height: 1.14;
  white-space: nowrap;
  overflow: hidden;
  overflow-wrap: normal;
  text-overflow: ellipsis;
  word-break: normal;
}

.app-tile.is-text-snug .app-tile-label,
.app-tile.is-text-compact .app-tile-label,
.cad-shared-app-tile.is-text-snug .cad-shared-app-label,
.cad-shared-app-tile.is-text-compact .cad-shared-app-label {
  font-size: 0.94rem;
  line-height: 1.16;
}

.app-tile-subtitle,
.cad-shared-app-subtitle {
  margin: 0;
  display: -webkit-box;
  color: var(--muted, #5f7184);
  font-size: 0.80rem;
  line-height: 1.36;
  opacity: 1;
  overflow: hidden;
  overflow-wrap: normal;
  text-overflow: ellipsis;
  word-break: normal;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}

.app-tile.is-text-snug .app-tile-subtitle,
.app-tile.is-text-compact .app-tile-subtitle,
.cad-shared-app-tile.is-text-snug .cad-shared-app-subtitle,
.cad-shared-app-tile.is-text-compact .cad-shared-app-subtitle {
  font-size: 0.77rem;
  line-height: 1.34;
}

.app-launcher-grid.is-app-count-many .app-tile,
.app-launcher-grid.is-app-count-large .app-tile,
.apps-launcher.is-app-count-many .app-tile,
.apps-launcher.is-app-count-large .app-tile,
.cad-shared-apps-grid.is-app-count-many .cad-shared-app-tile,
.cad-shared-apps-grid.is-app-count-large .cad-shared-app-tile {
  grid-template-columns: 50px minmax(0, 1fr) 22px;
  gap: 16px;
  min-height: 104px;
  padding: 18px 16px;
}

.app-launcher-grid.is-app-count-many .app-tile-badge,
.app-launcher-grid.is-app-count-large .app-tile-badge,
.apps-launcher.is-app-count-many .app-tile-badge,
.apps-launcher.is-app-count-large .app-tile-badge,
.cad-shared-apps-grid.is-app-count-many .cad-shared-app-badge,
.cad-shared-apps-grid.is-app-count-large .cad-shared-app-badge {
  width: 50px;
  height: 50px;
  border-radius: 11px;
  font-size: 0.92rem;
}

.app-launcher-grid.is-app-count-many .app-tile-label,
.app-launcher-grid.is-app-count-large .app-tile-label,
.apps-launcher.is-app-count-many .app-tile-label,
.apps-launcher.is-app-count-large .app-tile-label,
.cad-shared-apps-grid.is-app-count-many .cad-shared-app-label,
.cad-shared-apps-grid.is-app-count-large .cad-shared-app-label {
  font-size: 0.94rem;
}

.app-launcher-grid.is-app-count-many .app-tile-subtitle,
.app-launcher-grid.is-app-count-large .app-tile-subtitle,
.apps-launcher.is-app-count-many .app-tile-subtitle,
.apps-launcher.is-app-count-large .app-tile-subtitle,
.cad-shared-apps-grid.is-app-count-many .cad-shared-app-subtitle,
.cad-shared-apps-grid.is-app-count-large .cad-shared-app-subtitle {
  font-size: 0.76rem;
  line-height: 1.32;
}

.app-launcher-grid.is-app-count-dense .app-tile,
.apps-launcher.is-app-count-dense .app-tile,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-tile {
  grid-template-columns: 44px minmax(0, 1fr) 20px;
  gap: 14px;
  min-height: 92px;
  padding: 15px 14px;
}

.app-launcher-grid.is-app-count-dense .app-tile-badge,
.apps-launcher.is-app-count-dense .app-tile-badge,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-badge {
  width: 44px;
  height: 44px;
  border-radius: 10px;
  font-size: 0.84rem;
}

.app-launcher-grid.is-app-count-dense .app-tile-copy,
.apps-launcher.is-app-count-dense .app-tile-copy,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-copy {
  gap: 5px;
}

.app-launcher-grid.is-app-count-dense .app-tile-label,
.apps-launcher.is-app-count-dense .app-tile-label,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-label {
  font-size: 0.88rem;
  line-height: 1.14;
}

.app-launcher-grid.is-app-count-dense .app-tile-subtitle,
.apps-launcher.is-app-count-dense .app-tile-subtitle,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-subtitle {
  font-size: 0.72rem;
  line-height: 1.28;
}

.app-launcher-grid.is-app-count-dense .app-tile-arrow,
.apps-launcher.is-app-count-dense .app-tile-arrow,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-arrow {
  font-size: 1.75rem;
}

.app-launcher-grid.is-app-count-dense .app-current-overlay,
.apps-launcher.is-app-count-dense .app-current-overlay,
.cad-shared-apps-grid.is-app-count-dense .cad-shared-app-current-overlay {
  width: 18px;
  height: 18px;
  font-size: 0.66rem;
}

.app-tile-arrow,
.cad-shared-app-arrow {
  position: relative;
  z-index: 1;
  justify-self: end;
  color: rgba(95, 113, 132, 0.82);
  font-size: 2rem;
  font-weight: 300;
  line-height: 1;
}

.app-current-overlay,
.cad-shared-app-current-overlay {
  position: relative;
  z-index: 1;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #4d9cdd;
  color: #ffffff;
  box-shadow: 0 5px 12px rgba(77, 156, 221, 0.26);
  font-size: 0.72rem;
  font-weight: 850;
  line-height: 1;
  pointer-events: none;
}

@media (max-width: 780px) {
  .apps-modal {
    width: min(680px, calc(100vw - 32px));
  }

  .app-launcher-grid,
  .apps-launcher,
  .cad-shared-apps-grid,
  .app-launcher-grid.is-app-count-many,
  .app-launcher-grid.is-app-count-large,
  .app-launcher-grid.is-app-count-dense,
  .apps-launcher.is-app-count-many,
  .apps-launcher.is-app-count-large,
  .apps-launcher.is-app-count-dense,
  .cad-shared-apps-grid.is-app-count-many,
  .cad-shared-apps-grid.is-app-count-large,
  .cad-shared-apps-grid.is-app-count-dense {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

@media (max-width: 980px) and (min-width: 781px) {
  .app-launcher-grid,
  .apps-launcher,
  .cad-shared-apps-grid,
  .app-launcher-grid.is-app-count-many,
  .app-launcher-grid.is-app-count-large,
  .app-launcher-grid.is-app-count-dense,
  .apps-launcher.is-app-count-many,
  .apps-launcher.is-app-count-large,
  .apps-launcher.is-app-count-dense,
  .cad-shared-apps-grid.is-app-count-many,
  .cad-shared-apps-grid.is-app-count-large,
  .cad-shared-apps-grid.is-app-count-dense {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }
}
